2011-01-06 9 views
2

私はオフラインアクセス権をユーザーに付与しています。セッションの有効期限= 0は失効しません。私はaccess_codeなどのデータベースにすべてのセッション値を格納しています。値を保存した直後に、私はニュースフィードを読むことができます。 2秒後、ユーザーのニュースフィードを読むためにこれらの保存されたセッション値を使用しようとすると、それは機能しません。 OAuthException:アクティブなアクセストークンは、私がニュースフィードを読むためにこのラインを使用しています、PHPで現在のユーザーに関するFacebook APIオフラインニュースフィード

を情報を照会するために使用する必要があります。$result=$facebook->api("/me/home?access_token=".$access_token);

不思議なことに、私は、URLにアクセスコードを入力してくださいブラウザの動作:

https://graph.facebook.com/me/home?access_token= $ access_tokenです。

ユーザーがあなたに許可を与えるとき、あなたはURLでこれを取得するには、覚えておいてください:

「friends_about_me、friends_education_history、friends_likes、friends_interests、friends_location、:http://example.it/home/newsfeed.php?perms=<permissionlist>&selected_profiles=<uid>&installed=1&session={session_key:<session_key>,uid:<uid>,expires:0,secret:<secret>,access_token:<firstpart>|<secondpart>|<third part>,sig:<sig>}

私の許可リストはこれですfriends_religion_politics、 friends_work_history、publish_stream、friends_activities、friends_events、 friends_hometown、friends_location、user_interests、user_likes、user_events、 user_about_me、user_status 、user_work_history、read_requests、read_stream、offline_access、user_religion_politics、email、user_groups ";

私は任意のブラウザに上記URLを入力するときnewsfeed.phpがニュースフィードを出力するPHPコードを持っているとして、それは、私のUIDのニュースフィードを提供します。ユーザーがログインしているかどうかは関係ありません。 IEはファイルとしてjsonの結果をダウンロードする場合もあります。

したがって、セッション情報は実際には有効期限切れではありません。しかし、どういうわけか、私はFacebookにニュースフィードを読むための正しい資格があると信じさせられない。

ご迷惑をおかけして申し訳ありません。私がどのようにセッション値を再構成し、Facebookが私を信じさせるかを書いてください。

私の最終的な解決策は、私の更新のブログで見ることができます:私もフィードが動作しない場合でも、私はまだ、ユーザーのプロファイルにステータスメッセージを投稿することができ、ことを言及するのを忘れhttp://akcora.wordpress.com/


。これは意味をなさない。私はほとんど私がコーディングで間違いを犯していると確信しています。たとえば、これは動作するステータス通知コードです:

$attachment = array(
     'access_token' => $access_token, 
      'message' => 'Did a Test Post :', 
       'name' => "Offline posting using stored tokens", 
       'link' => "http:somelink.com", 
       'description' => "This post was made using a stored access token", 
      'picture'=>"some.jpg", 
     ); 

$ret_code=$facebook->api('/'.$target.'/feed', 'POST', $attachment); 

しかし、フィードを取得できません。セキュリティは、ニュースフィードを取得するよりも投稿するのが厳しいべきでしょうか?

+0

ライブラリ関数を使用しているときは、アクセストークンをURLエンコードしていますか?その関数で使用する前にエンコードする必要があるかもしれません。 –

答えて

0

urlのgetパラメータではなく、api関数のパラメータとしてaccess_tokenを送信します。

facebookライブラリがあなたのために仕事をすることを心配しないでください...

$facebook->api("me/feed",array(
    "access_token"=>$access_token 
)); 

そして、セッションパラメータは新しいOAuth認証方法では使用できなくなりました。セッションが(サーバ側またはコード)signed_requestのPARAMに移された