ASP.NETを使用してFacebookモーダルウィンドウなしでFacebookプロファイルにステータスを投稿する

StackOverflow https://stackoverflow.com/questions/1638279

  •  08-07-2019
  •  | 
  •  

質問

ASP.NETサイトでFacebookを使用しようとしています。ログインしているサイトのユーザーが、サイトのステータスを示すボックスにテキストを入力しています。私も彼らの許可に従って、そのステータスをFBにプッシュできるようにしたいと思います。シンプルなFacebook Connect JSコードを使用して実行しましたが、.NETで情報を取得し、そのようにプッシュしたいです。ただし、実際にはFBプロファイル用のFBアプリを作成しているわけではありません。

これは、私が望むものの擬似コードです:

Facebook fb = new Facebook(apiKey);
FBSession sess = fb.Authenticate();
if(sess.isAuthenticated) {
  User u = fb.getUser(sess.userId);
  u.setStatus(Textbox1.text);
  u.SaveStatus();
}

.NETにもこのようなものがありますか、それともPHP専用のAPIですか?

役に立ちましたか?

解決

もちろん、ここにサンプルコードがあります。 Facebook Developer Toolkitを使用しています(codeplexにあります)。 FBConnectAuthはcodeplexにもあります。

Cookieをチェックして、Cookieが本物であることを確認します(誰かがハッキングしようとしていないことを確認します)。これがCookie検証手順が重要な理由です。

JSコードを使用してログインしている限り、JSに設定されているのと同じCookieにC#でアクセスできます。

これは、Facebook Connectアプリでは正常に機能します。

        using FBConnectAuth;
        using facebook;

        public facebook.API api = new facebook.API();

        bool IsLoggedInToFacebook = false;
        FBConnectAuthentication auth = new FBConnectAuthentication(ConfigurationManager.AppSettings["AppKey"], ConfigurationManager.AppSettings["Secret"]);
        if (auth.Validate() != ValidationState.Valid)
        {
            IsLoggedInToFacebook = false;
        }
        else
        {
            FBConnectSession fbSession = auth.GetSession();
            string userId = fbSession.UserID;
            string sessionKey = fbSession.SessionKey;

            api.ApplicationKey = ConfigurationManager.AppSettings["AppKey"];
            api.SessionKey = sessionKey;
            api.Secret = ConfigurationManager.AppSettings["Secret"];
            api.uid = Convert.ToInt64(userId);
            api.status.set("statutes text goes here")

            IsLoggedInToFacebook = true;
        }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top