UWPアプリケーションからFacebook APIを操作する







人々は、原則として、生き物は非常に忘れっぽいです。 UWPアプリケーションに登録するときにユーザーに新しいパスワードを強制的に記憶させないために、サードパーティのプラットフォームアカウントを使用できます。 同時に、有益な情報やユーザーの特性にアクセスするために、長いアンケートに無理やり記入する必要はありません。 ソーシャルネットワークでのコンテンツの公開によりコンバージョンが増加するという事実は言及されていませんが、これは理解できます。 喫煙マニュアルなしでC#/ XAML UWPアプリケーションから世界で最も人気のあるネットワークを操作する方法を理解したい場合は、catへようこそ。



FacebookアプリケーションをUWPアプリケーションにリンクする



UWPアプリケーションをFacevook APIと連携させるには、Facebookアプリケーションを作成する必要があります。 これは、 https://developers.facebook.com/apps/ポータルから「+新しいアプリケーションを追加」ボタンをクリックして実行します。







アプリケーション名と連絡先アドレスのフィールドに入力し、カテゴリを選択してアプリケーションを分類します。







次に、facebookのログイン機能が必要です







少なくともブラウザに組み込まれた OAuthクライアント認証、OAuth Web認証、およびOAuth認証が含まれるようにスイッチを構成します







プラットフォーム設定をクリックしてプラットフォームを選択します







ウィンドウが表示されます。







Windows用のアプリケーションを選択します



これで、いくつかの設定を行うことができますが、重要ではありません。 しかし、それからあなたはfacebookアプリケーションの識別子を必要とします。







私たちが本当に記入する必要があるのは少し低いです:







Windowsストアセキュリティ識別子(SID)値は、さまざまな方法で取得できます。

より簡単な方法は、次のコードを使用することです。



WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString();
      
      





この行はms-appを返します:// SID (ms-app://削除する必要があります)



2番目の方法では、アプリケーションをストアに関連付ける必要があります。 この場合、 コントロールパネルに移動し、アプリ管理アプリケーションで[アプリID]を選択できます。 PackageSIDの値は必要なものです。







Facebook用Windows SDKを使用してFacebook APIを操作する



Microsoftのライブラリを、発音できない短縮名winsdkfbで使用します。 フルネームの発音ははるかに簡単です-Windows SDK for Facebook。 これは、UWPアプリケーションからFacebook APIを使用する最も便利な方法です。 NuGetでダウンロードしてインストールできます



C#で、名前空間をXAMLページコードに追加します



 using winsdkfb;
      
      





認証コードは次のとおりです。



  string[] requested_permissions = {"public_profile", "email", "user_friends"}; FBSession session = FBSession.ActiveSession; session.WinAppId = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString(); session.FBAppId = "229583744102151"; FBPermissions permissions = new FBPermissions(requested_permissions); FBResult result = await session.LoginAsync(permissions); if (result.Succeeded) { //    -   } else { //       facebook }
      
      





最初の行は、アプリケーションがアクセスする許可を設定します。 この例では、3つの許可が記載されていますが、Facebookでは追加のユーザー確認を求めていません。

Permissions Help:Facebookでのログインの完全なリスト参照してください

接続用に設定する必要がある2つのパラメーターは、既に説明したSIDと、作成されたFacebookアプリケーションの識別子です。



その結果、次の組み込みウィンドウが表示されます。







入る方法を知っている、あなたは出る方法を知る必要があります。 これは、同様のコードを使用して実行できます。



  FBSession sess = FBSession.ActiveSession; await sess.LogoutAsync();
      
      





単純なユーザーデータは、session.Userオブジェクトから取得できます。



  string username = session.User.Name; //   string locale = session.User.Locale; //  
      
      





役に立つものは何ですか? たとえば、ゲームの結果/記録または参加の招待状を含むメッセージを投稿する機能をアプリケーションに追加できます。



  PropertySet parameters = new PropertySet(); parameters.Add("title", " MP3"); parameters.Add("link", "https://www.microsoft.com/ru-ru/store/p/-mp3/9wzdncrdkwgv"); parameters.Add("description", "  -    "); parameters.Add("message", "    "); string path = "/" + session.User.Id + "/feed"; var factory = new FBJsonClassFactory(s => { return JsonConvert.DeserializeObject<FBReturnObject>(s); }); var singleValue = new FBSingleValue(path, parameters, factory); var fbresult = await singleValue.PostAsync(); if (fbresult.Succeeded) { var response = fbresult.Object as FBReturnObject; } else { //     }
      
      





(result.Succeeded)がtrueを返す場合(つまり、認証が成功した場合)に、このスニペットが実行されます。 NewtonSoft.JSONと呼ばれる一般的なJSONパーサーを使用します。これはNuGetからインストールする必要があります。



さらに、次のクラスがプロジェクトに存在する必要があります。これは、操作の結果を特徴付けるものです。



  public class FBReturnObject { public string Id { get; set; } public string Post_Id { get; set; } }
      
      





ユーザーがコメントを追加できるダイアログボックスを表示しながら、フィードにメッセージを投稿するオプションがあります。 コードは少し単純です:



  PropertySet parameters = new PropertySet(); parameters.Add("title", ""); parameters.Add("link", "https://www.microsoft.com/ru-RU/store/p/take-a-test/9wzdncrdkwgx"); parameters.Add("description", "    "); parameters.Add("message", "     "); FBResult fbresult = await session.ShowFeedDialogAsync(parameters); if (fbresult.Succeeded) { var response = fbresult.Object as FBReturnObject; } else { //     }
      
      





次の小さなスニペットを使用して、ユーザーは友人の1人にリンクを送信し、それにメッセージを追加できます。



  PropertySet parameters = new PropertySet(); parameters.Add("link", "http://www.habrahabr.ru"); FBResult fbresult = await session.ShowSendDialogAsync(parameters);
      
      





winsdkfbを使用するアプリケーションの例はGitHubにありますが、C#についてはあまり明確ではない例が1つしかありません。



多かれ少なかれ通常のドキュメントはこちら

特に、既に説明したfbと対話する方法に加えて、次のオプションが考慮されます:写真/ビデオのアップロード、オブジェクトまたはリンクのような友人への招待の送信(ゲームのみ)。



All Articles