私は多くの検索を行いましたが、機能しない古いチュートリアルが見つかりました...
PHPで作成したサイトがあり、管理領域で特定のフォームを送信するときに、Facebookの「ファンページ」に公開したい
RSSが利用できないので、php SDKを使用してFacebookユーザーページ(ユーザーウォールではない)に直接投稿する例はありますか?
ありがとうございました!
最後に、多くのテストの後、PHP SDKなしで機能しました。これはステップバイステップガイドです。
1。アクセス許可とページトークンを取得する
https://developers.facebook.com/tools/Explorer/ に移動し、左側の最初のドロップダウンメニューからアプリを選択します。
[アクセストークンの取得]ボタンをクリックし、[アクセス許可の選択]ウィンドウで[拡張アクセス許可]をクリックしてmanage_pagesとpublish_streamを確認し、[アクセストークンの取得]青いボタンをクリックします。
このステップでは、Facebookアカウントへのアクセス許可をアプリに許可するよう求められる場合があります。
次に、「GET」ドロップダウンの横にあるテキストフィールドの最後をクリックして、me/accountsの数字を置き換え、このテキストフィールドの横にある青いボタンをクリックします。
アプリページを含むすべてのページのトークンを取得します。リストでページ名を見つけます。次のようになります: "name": "Your page name"
ページを見つけたら、ページのアクセストークンをコピーします(非常に長くなります)。次のようになります: "access_token": "XXXXXXXX"。ページのidもコピーします: "id": "XXXXX"。
このステップはこれですべてです。コーディングを開始できます。
2。 PHPを介してページウォールに投稿する
まず、このスクリプトには、curlをサポートするサーバーが必要です。
最初のステップで取得したページアクセストークンとページIDを定義するPHPドキュメントを開始します。
<?php
$page_access_token = 'XXXXXXX';
$page_id = 'YYYYYYYY';
その後、ページウォールに投稿する情報を含む配列を作成します。
$data['picture'] = "http://www.example.com/image.jpg";
$data['link'] = "http://www.example.com/";
$data['message'] = "Your message";
$data['caption'] = "Caption";
$data['description'] = "Description";
もちろん、 https://developers.facebook.com/docs/reference/api/post/ で説明されている他の投稿パラメーターを使用できます。1つ以上のパラメーターが必要ない場合上記の場合、単純に削除できます。
わかりました。この時点で、配列にアクセストークンを追加します。
$data['access_token'] = $page_access_token;
そして、投稿URLを設定して、ページに投稿します。
$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';
最後のステップでは、カールを使用してメッセージをページウォールに投稿します。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
?>
その後、PHPドキュメントを保存し、それを実行しようとします。Facebookページに投稿が表示される場合があります。
このコードが同じ問題を抱えている他の人々に役立つことを願っています!
Facebook Access Token Debugger を使用してトークンをテストできます
API v.2.5の実用的なソリューション
app_id
のパラメーターとしてresponse_uri
のcode
を取得します
https://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".$response_uri."&response_type=code&scope=manage_pages,publish_pages
access_token
の結果としてcode
、app_id
、およびapp_secret
に基づいてresponse_uri
を取得します
https://graph.facebook.com/oauth/access_token?grant_type=authorization_code&client_id=".$app_id."&client_secret=".$app_secret."&code=".$code."&redirect_uri=".$response_uri
page_access_token
に基づいてpage_id
のaccess_token
が期限切れになることはありません
https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token
Nmartiの回答への追加として。 API v.2.4で有効。
Facebook APIコンソールに行きたくない場合は、API呼び出しを行います。いくつかの手順があります。
まず第一に、投稿したいページの管理者であるFacebookユーザーが必要です。また、続行するにはFacebookアプリを作成する必要があります。
応答として、%user-token%を取得して保存し、次のステップで必要になります。
これで、長寿命のページトークンを取得するために必要な%long-lived-token%が得られます。
https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%
リストであなたのページとページトークンを見つけ、nmartiの例を使ってページへの投稿を続けることができます。
Facebookも次のように言っています。
結果のページアクセストークンには有効期限がありません。
これが探しているリソースです 。下にスクロールしてPage Login
そしてそこから読みます。ページのアクセストークンを取得し、投稿時にそのトークンを使用する必要があります。これは、投稿を「ページから」表示することを前提としています。 IE-ページのように投稿します。
postオブジェクトを作成するためのグラフAPIへの実際の呼び出しとその方法は、facebookドキュメントの this url にあります。