バックグラウンド
プログラムで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_pages
publish_stream
photo_upload
offline_access
- 潜在的な将来の訪問者への補足として、ページ アクセス トークンの代わりにユーザー アクセス トークンを生成したことが判明しました。これが、自分自身のアルバムの自分のウォールに投稿された理由です。
$config['facebook_pageId']
ページのIDです(Graph API Explorerを使用して見つけました)- 正常に完了
$data
すると、画像の ID と壁の投稿 (?) が含まれているようです
質問のまとめ
- Facebook ページ自体として Facebook ページに写真を投稿するにはどうすればよいですか?
- これは、開発者が行き来するプロジェクト用です。特定の Facebook ユーザーから独立した不変のページ アクセス トークンを取得する方法、または(ダミーの) Facebook アプリに依存する方法、または何らかの方法でオンザフライで生成する方法はありますか?
- (必要に応じて) Facebook ページとして認証するにはどうすればよいですか? PHP でプログラムによってページ アクセス トークンを取得するにはどうすればよいですか?
コード例、または簡潔なドキュメントやチュートリアルへのリンク、できれば例を示したリンクは大歓迎です。