質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

解決済

1回答

1743閲覧

Azureの「Xamarin Forms アプリに認証を追加する」のチュートリアルができない

Gene_Selfish

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

0クリップ

投稿2018/02/23 08:39

Xamarin.Forms の勉強の過程で、バックエンドとして Azure Mobile App を使う
チュートリアル的なやつをやっているのですが、IDプロバイダー認証のところでつまづいてます。
https://docs.microsoft.com/ja-jp/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-users
これによると、
LoginAsyncメソッドの使い方で、

C#

1user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, 2 MobileServiceAuthenticationProvider.Facebook, "{url_scheme_of_your_app}");

となっていますが、
Microsoft.Azure.Mobile.Client の現在のバージョンv4.0.2 には、このようなシグネーチャはなくて、
LoginAsync(MobileServiceAuthenticationProvider, JObject)
となっています。
そこで、

C#

1(前略).LoginAsync(MobileServiceAuthenticationProvider.Twitter, null);

とすると、

System.ArgumentNullException: Value cannot be null.

が発生し、tokenパラメータはnullはダメということらしいので、

C#

1(前略).LoginAsync(MobileServiceAuthenticationProvider.Twitter, new JObject());

とか、

C#

1(前略).LoginAsync(MobileServiceAuthenticationProvider.Twitter, 2 JObject.Parse(@"{ ""access_token"":"""" }"));

とかやってみたところ、

Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: Bad Request

が発生し、'access_token'フィールドは必須だとか言われます。(ReasonPhrase "'access_token' field is required.")

日本語ドキュメントが古いのだろうと思い、英語版をあたってみましたが、
https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-users
まったく同じことが書いてあるだけです。

これはオフィシャルなドキュメントだと思うので、これ以上何を調べたらいいのかわからず、
途方に暮れています。

補足情報(FW/ツールのバージョンなど)

Visual studio 2017 community と
Azure無料試用版サブスクリプション使用

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MobileServiceClientExtensions クラスの方に引数を3つ取るメソッドがあるはずですので、チュートリアルの指示通り第3引数に適切な url_scheme_of_your_app を指定してみてください。
Azure ポータルに表示されている「許可される外部リダイレクト URL」が myapp1://easyauth.callback なら次のようにします。

C#

1user = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(this, 2 MobileServiceAuthenticationProvider.Twitter, "myapp1");

投稿2018/02/23 10:43

NakamuraYoichi

総合スコア374

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gene_Selfish

2018/02/24 00:21

NakamuraYoichiさん、ご回答ありがとうございます。 何かの間違いで、このシグネーチャはコンパイルが通らないと思ったのと、 APIリファレンスのこのあたりを見ても、 https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.mobileservices.mobileserviceclient.loginasync?view=azure-dotnet#Microsoft_WindowsAzure_MobileServices_MobileServiceClient_LoginAsync_Microsoft_WindowsAzure_MobileServices_MobileServiceAuthenticationProvider_Newtonsoft_Json_Linq_JObject_ https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.mobileservices.mobileserviceclientextensions?view=azure-dotnet 記載を見つけられなかったので、チュートリアルの方が変だと誤解していました。 改めてやってみたところ、コンパイルも通るし、Twitterの連携画面も出てきました。 まだちょっと怪しいを動きをするところがありますが、先に進むことはできるようにはなりました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問