ASP.NETを使用してFacebookモーダルウィンドウなしでFacebookプロファイルにステータスを投稿する
質問
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;
}
所属していません StackOverflow