-3

サーバー上のcronを介して自分のWebサイトのFacebookファンページに投稿しようとしています。

Facebookで「JohnDoe」という名前のユーザーを作成し、彼を自分のWebサイトのFacebookファンページで管理者にした後、そのユーザーからサンドボックスモードでアプリを作成したので、「JohnDoe」だけが「実行」できます。

アプリを実行している「JohnDoe」から、アプリに必要な権限を与えました。

私はdevelopers.facebook.comから手動でアクセストークンを取得し、それらを使用してphpcronスクリプトから「JohnDoe」のアプリを介して自分のWebサイトのFacebookファンページに投稿できます。

問題は、これが機能するためには、私の「JohnDoe」Facebookユーザーがログインしている必要があるということです。

管理者「JohnDoe」が使用してアクセスを許可しているアプリケーションを介してWebサイトのFacebookファンページに正常に投稿できるように、Webサイトのphp cronスクリプトに常に自動的に有効なアクセストークンがあるようにするにはどうすればよいですか?

現在、「John Doe」としてFacebookに手動でログインし、developers.facebook.comからphpスクリプトにアクセストークンをコピーして貼り付けています。これで機能します。

(私のウェブサイトのFacebookファンページの成功した投稿は「mywebsiteはmyappを介してリンクを共有しました」のように表示されるので、アクセストークンを除いて他のすべては大丈夫だと確信しています)

前もって感謝します

4

2 に答える 2

4

この質問は私自身の質問と非常によく似ており、これを解決するために2日間を費やしました。解決策は非常に簡単です。

  1. アプリをネイティブ/デスクトップに設定して、60日間のトークンを取得できるようにします(これは後で永続的になります)。これを行うには、https://developers.facebook.com/apps/にアクセスします。 [設定の編集]>[詳細設定]>[アプリの種類]で[ネイティブ/デスクトップ]を選択します。

  2. https://developers.facebook.com/tools/explorer/にアクセスしてアプリを選択し、アクセストークンを取得します

  3. [拡張アクセス許可]タブで、manage_pages[publish_stream

  4. これで、60日間の一時トークンができました。

  5. 永続的なトークンを取得するには、ここに移動して一時的なトークンを使用します。https://graph.facebook.com/me/accounts?access_token=REPLACE_THIS_WITH_YOUR_TEMPORARY_TOKEN

管理者であるすべてのFacebookページへの永続的なアクセストークンが表示されます。

于 2012-11-23T20:40:41.713 に答える
3

https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/を参照してください-具体的にはシナリオ5-

  1. サーバー側のOauthフロー(詳細についてはログインmanage_pagesドキュメントを参照)を使用して、ページ管理者(権限を持つ)のアクセストークンを取得します

  2. /me/accountsまたはから取得したページアクセストークンを取得します/<PAGE ID>?fields=access_token

このページアクセストークンの有効期限は無限です。つまり、ユーザーがページの管理者でなくなるか、アプリを削除するか、すべてのアプリセッションを強制終了しない限り、有効期限はありません。

于 2012-11-20T18:23:52.373 に答える