0

毎日の写真を個人の Facebook ウォールにアップロードできる PHP スクリプトを作成しようとしています。ログインしているときだけでなく、いつでもこれを行う必要があります。PHPのみを使用して壁に写真をアップロードできるかどうか、または適切な権限を持つアプリを使用する必要があるかどうか疑問に思っています。もしそうなら、私は個人的にそのアプリをインストールし、これを可能にするために自分のページに適切な許可を与える必要がありますか?

やりたいこと: 要するに、ユーザーの twitter フィードを変換して画像に載せたいと思っています。これを自動的に行うスクリプトが既にあります。ただし、Twitterユーザーがツイートした後、これが私のスクリプトを呼び出して画像に変換するといいのですが(このコードはすでに実行しています)、しかし...

画像が作成された後、これを自分のウォールに自動的にアップロードできるスクリプトが必要です。これは可能ですか?

PS私に反対票を投じないでください。これが悪い質問である場合は、削除するか、別の適切なフォームに移動できます. どこに置くか分からなかっただけです。ありがとう

4

1 に答える 1

1

拡張ユーザー アクセス トークンを使用して、最大 60 日間動作させることができます。その後、トークンの有効期限が切れ、トークンを更新する必要がありますが、これはユーザーの操作なしでは不可能です。

ドキュメントには同じことが記載されています:

有効期間の長いアクセス トークンでさえ、最終的には期限切れになります。いつでも、ユーザーを Web アプリで使用されるログイン フローに戻すことで、新しい長期間有効なトークンを生成できます。ユーザーは実際に再度ログインする必要はありません。ユーザーは既にアプリを承認しているため、更新されたトークンを使用して、ログイン フローからアプリにすぐにリダイレクトします。これがユーザーにどのように表示されるかは、使用しているログイン フローのタイプによって異なります。たとえば、JavaScript SDK を使用している場合、これは次の場所で行われます。サーバー側のフローを使用している場合、ブラウザはすぐにログイン ダイアログにリダイレクトし、自動的にすぐにアプリに戻ります。

上記を行った後、新しい短命のトークンを取得します。次に、上記と同じ交換を長命のトークンに対して実行する必要があります。

拡張トークンを取得するには、サーバーから次の呼び出しを行います。

GET /oauth/access_token?  
   grant_type=fb_exchange_token&           
   client_id={app-id}&
   client_secret={app-secret}&
   fb_exchange_token={short-lived-token} 

コード

$app_id = APP_ID;
   $app_secret = APP_SECRET;
   $post_login_url = APP_URL;
   $album_name = 'test';
   $album_description = 'desc';

   $code = $_REQUEST["code"];

   //Obtain the access_token with publish_stream permission 
   if(empty($code))
     {
       $dialog_url= "http://www.facebook.com/dialog/oauth?"
       . "client_id=" . $app_id 
       . "&redirect_uri=" . urlencode($post_login_url)
       . "&scope=publish_stream";
       echo("<script>top.location.href='" . $dialog_url . 
       "'</script>");
   } 
   else {
   
     // access token
     $token_url= "https://graph.facebook.com/oauth/"
     . "access_token?"
     . "client_id=" .  $app_id 
     . "&redirect_uri=" . urlencode( $post_login_url)
     . "&client_secret=" . $app_secret
     . "&code=" . $code;
     $response = file_get_contents($token_url);
     $params = null;
     parse_str($response, $params);
     $access_token = $params['access_token'];       // <---
    
     // extended token
     $extended_token_url= "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=".$app_id."&client_secret=".$app_secret."&fb_exchange_token=".$access_token; 
     $response = file_get_contents($extended_token_url);
     $params = null;
     parse_str($response, $params);
     $extended_access_token = $params['access_token'];  //  <---

     // Upload to the photos to the album here
}

これが、拡張トークンを含む完全な認証プロセスです。写真のアップロードに関する多くの投稿を見つけることができます$extended_access_token。電話で を使用するだけです。

(ご存じないかもしれませんが、Graph API Explorerは API をテストするための facebook の素晴らしいツールです)。

幸運を!

于 2013-10-24T05:51:03.210 に答える