3

バックグラウンド

プログラムでFacebook ページに写真を投稿する方法を見つけるのに少し苦労しています。ページとしての認証に関する Facebook ドキュメントを読みましたが、すべての例には Facebook ユーザーが含まれています。これまでのところ、Facebook のGraph API Explorerを使用して、必要なアクセス トークンを手動で生成しました。(3)

私が試したこと

この単純なコードを使用して、写真をアップロードすることに成功しましたが、それは自分のウォール、自分の名前で自分のアルバムに投稿されたものFacebookページではなく、Facebookページアルバム投稿されたものでしたの名前。Facebookページ自体として特定のFacebookページに投稿する必要があります。(1)

<?php
require 'facebook-php-sdk/src/facebook.php';
require 'config.php';

$facebook = new Facebook(array(
    'appId' => $config['facebook_appId'],
    'secret' => $config['facebook_appSecret'],
    'fileUpload' => true
));

$facebook->setAccessToken($config['facebook_pageAccessToken']);

$args = array(
    'message' => 'Facebook API test',
    'source' => '@'.realpath(__DIR__.'/404.jpg')
);

$data = $facebook->api('/'.$config['facebook_pageId'].'/photos', 'post', $args);

コードについて

  • $config['facebook_appId']私が作成したダミーのテストアプリからのものです
  • $config['facebook_appSecret']私が作成したダミーのテストアプリからのものです
  • $config['facebook_pageAccessToken']スコープ、、および(3)を使用して、 Graph API Explorerから生成されます。manage_pagespublish_streamphoto_uploadoffline_access
    • 潜在的な将来の訪問者への補足として、ページ アクセス トークンの代わりにユーザー アクセス トークンを生成したことが判明しました。これが、自分自身のアルバムの自分のウォールに投稿された理由です。
  • $config['facebook_pageId']ページのIDです(Graph API Explorerを使用して見つけました)
  • 正常に完了$dataすると、画像の ID と壁の投稿 (?) が含まれているようです

質問のまとめ

  1. Facebook ページ自体として Facebook ページに写真を投稿するにはどうすればよいですか?
  2. これは、開発者が行き来するプロジェクト用です。特定の Facebook ユーザーから独立した不変のページ アクセス トークンを取得する方法、または(ダミーの) Facebook アプリに依存する方法、または何らかの方法でオンザフライで生成する方法はありますか?
  3. (必要に応じて) Facebook ページとして認証するにはどうすればよいですか? PHP でプログラムによってページ アクセス トークンを取得するにはどうすればよいですか?

コード例、または簡潔なドキュメントやチュートリアルへのリンク、できれば例を示したリンクは大歓迎です。

4

1 に答える 1

7

3つすべてに対する答えは次のとおりです。

  • ページの管理者であるユーザーに、アプリのmanage_pages アクセス許可を付与してもらいます

  • このクライアント側 (つまり Javascript SDK) を実行した場合は、https://developers.facebook.com/roadmap/offline-access-removal/ のシナリオ 4 の手順を使用してアクセス トークンを拡張する必要があります

  • への呼び出しまたはaccess_tokenへの呼び出しを介して、ページの を取得します。ページ アクセス トークンを取得する前にページ管理者の access_token を拡張した場合、ユーザーがページの管理者でなくなるか、パスワードを変更するか、アプリへのアクセス許可を取り消すなどしない限り、ページ アクセス トークンは期限切れになりません (上記のドキュメントのシナリオ 5)。 )/me/permissions/[PAGE_ID]/?fields=access_token

  • そのアクセス トークンを使用して、写真をページの壁にアップロードします。

これらの手順のほとんどは、https: //developers.facebook.com/docs/authentication/pages/ (ページとしてログイン) またはこのページのドキュメントで明確になっていると思います。

于 2012-06-18T14:10:32.100 に答える