2010-12-15 5 views
1

私はOAuth認証を使用する最新のFacebook iPhone SDKを使用しています。私はiPhone上でセッションを作成しました。さらに、そのセッションをPHPサーバ上で続けて、さらなる処理(人の友人の得点を上げるなど)をしたいと考えています。古いiPhone SDKでは、iPhoneアプリケーションからPHPページにセッションを渡すだけで、そこから行くことができました。iPhoneでFacebookアクセストークンを復号化するPHPページ

しかし、新しいSDKはセキュリティ意識が強く、セッションを続行するのが難しいようです。私が読んだところでは、アクセストークンを使ってPHPページ上でセッションを続ける必要があるようです。 Facebook SDKには、暗号化されているようなアクセストークン変数があります。このアクセストークンを使用するには、何とか復号化する必要があると思います。私はthisページを見ましたが、それはそのアクセストークンの復号に役立つかもしれませんが、私はいつもNULL応答を受け取ります。

私は非常に多くのことを試みましたが、アイデアが不足しています。私はこれに正しく近づいていますか?それとも全く別のルートにする必要がありますか?当社のサーバーコードからグラフAPIにアクセスするには、それを直接使用している場合

おかげで、 ジャスティン

答えて

1

iPhone Facebookのアクセストークンは今、私のために働いています。私は、エンコードされたiPhoneのアクセストークンのロールアウトは、1つのシームレスな原子操作で行われていなかったと思います。

EDIT:

はここにそれからFacebookのデータを取得するのQueryStringから取得されたとのiPhoneトークンに何が起こるかです:

string facebookAccessToken = Request.QueryString["code"];

//Remove any & on the end (like &expires=) as these prevent the login working 
//Note that the iPhone token does not contain any & symbols 
int ampersandLocation = facebookAccessToken.IndexOf("&"); 
if(ampersandLocation >= 0) 
{ 
    facebookAccessToken = facebookAccessToken.Substring(0, ampersandLocation); 
} 

loginFacebookInfo.facebookApi = new Facebook.FacebookAPI(facebookAccessToken); 

JSONObject me = loginFacebookInfo.facebookApi.Get("/me"); 

FacebookAPIコンストラクタは、未処理のアクセストークンを保存する以外に何もしません。

facebookApi.Get( "/ me")の最後の呼び出し。このURLにGETリクエストを送信するだけです:

https://graph.facebook.com/me?access_token=<iPhone access token> 

です。

httpではなくhttps経由でアクセスしていることに注意してください。また、http呼び出しが失敗することは確実です。

アクセストークンのセッションキーを交換するoAUTHコールはありません。セッションキーを交換するコードはありません。ただの動作です。

希望に役立ちます。

乾杯、 ポール

+0

は、あなたがあなたのサーバー上でそれを使用しているかを示すためにいくつかのコードを投稿いただけますか?私はまだfacebookサーバーからNULL応答を返すようになっています。 – Opsive

関連する問題