0

FB ウォールにニュースを投稿するために、単純な Cron ジョブを作成しようとしています。

私が直面している問題は、ユーザーのログインが必要です。いくつかの方法を試しましたが、ログイン フォームを渡すことができませんでした (cURL を試しましたが、成功しませんでした)。

ユーザーのログインが手動で行われる場合、彼はメッセージを投稿できますが、これには仕事が必要です。調べてみたところ、PHP から FB ウォールに投稿できたという人は見つかりませんでした。

質問は次のとおりです。FB ウォールへの cURL ログイン/投稿を実行することは可能ですか。答えが「はい」の場合、それをどのように行う必要があるかについていくつかのアイデアを得ることができれば幸いです。

4

2 に答える 2

0

ここに記載されているExtended Access Tokenを使用する必要があります。次のようにエンドポイントを呼び出して、60 日間有効な Extended Access Token を取得できます。ただし、有効期限後に更新する必要があります。/oauth

oauth/access_token?  
grant_type=fb_exchange_token&           
client_id=<YOUR_APP_ID>&
client_secret=<YOUR_APP_SECRET>&
fb_exchange_token=<PRESENT_SHORT_LIVED_ACCESS_TOKEN>

更新:-最初に、アプリケーションのリストからアプリケーションを選択した後、アカウントのGraph Explorerから取得できる短命のアクセス トークン
を取得する必要があります。他の汎用ユーザーに短期間のアクセス トークンが必要な場合は、必要な値を取得できるように、ユーザーにログイン方法を提供する必要があります。次に、拡張アクセス トークンを取得し、安全な場所に保存する 必要があります。 次に、次のアクションごとに、このアクセス トークンをスクリプト内のアクセス トークンの値として渡して、ユーザーに代わって投稿できます。

于 2013-03-12T11:16:14.310 に答える
-1

これは、オフラインアクセス許可を使用して行うことができます。

 $loginUrl   = $facebook->getLoginUrl(
        array(
            'scope'=> 'email,publish_stream,user_hometown,user_location,user_photos,friends_photos,
              user_photo_video_tags,friends_photo_video_tags,user_videos,video_upload,friends_videos,offline_access,manage_pages',
            'redirect_uri'  => 'your redirect url'
        )
); 

 $user            =   null;
 $user       = $facebook->getUser();
 if (!$user) {       
    echo '<script> top.location.href="'. $loginUrl .'"; </script>';
 } else {
    $access_token = $facebook->getAccessToken();
  }

/*このアクセストークンをユーザーIDでデータベースに保存します。このアクセストークンレターを使用してウォールに投稿できます*/

既存の短命のユーザーaccess_tokensの有効期限を延長する...現在、長命のユーザーaccess_tokenは60日間有効ですが、短命のユーザーaccess_tokensは現在1〜2時間有効です。詳細については、 https://developers.facebook.com/roadmap/offline-access-removal/をご覧ください。

于 2013-03-12T10:32:29.837 に答える