ニュース、およびユーザー、グループ、イベント、ファンのページへのコメントの自動追加とその後の削除の経験を共有したいと思います。 Facebook.comページ。
実装には、 curlモジュールが接続されたPHP Facebook SDK linkが必要です。
彼らは私にタスクを設定しました:管理者から。 サイトパネルは、VKontakteの適切なグループとファンにニュースを追加します。 Facebookページ。
連絡先への対処は難しくありませんでした。 この記事とこれは役に立ちました。 そのようなバグや制限に出くわしたのは私だけです。私のwall.postメソッドは post_idを返しませんが、ドキュメントにはそうすべきだと書かれています。
しかし、これは別の記事のトピックです。 次に、Facebookページにニュースを追加する方法を段階的に検討していきます。
Facebookアプリケーションを作成する
リンクに従って、新しいアプリケーションを作成します(右上隅)。
アプリケーションを作成すると、次のものが得られます。
Appid
アプリの秘密
ニュースの発行元のサイトに対応するアプリドメインとウェブサイトの下に示すことを忘れないでください。
Facebookのページにニュースを追加する
require '../src/facebook.php';
define('FACEBOOK_APP_ID',"123456"); // AppId
define('FACEBOOK_SECRET',"123456"); // App Secret
define('PAGE_ID',"123456"); // (, , )
define('UID',"123456"); //
$user = null;
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET,
'cookie' => true
));
$user = $facebook->getUser(); // UID , 0.
/**
* - redirect_uri: URL
* - scope:
*/
if($user == 0) {
$login_url = $facebook->getLoginUrl($params = array('scope' => 'manage_pages,offline_access,publish_stream, read_stream'));
// $login_url
}
$params = array(
'name' => “My title”,
'href' => “http://www.mysite.ru”,
'description' => “Description”
);
$message = “Message”; //
$attachment = urlencode(json_encode($params)); //
$url = 'https://api.facebook.com/method/stream.publish?message='.$message.'&attachment='.$attachment.'&target_id='.PAGE_ID.'&uid='.UID.'&access_token='.$facebook->getAccessToken();
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_URL, $url);
$res = curl_exec($ch);
curl_close($ch);
要求が成功すると、文字列がJSON形式でエラーで失敗した場合、Facebookはレコード識別子を返します。 将来の使用に便利な識別子を保持します。
サンプルメッセージビュー:
添付変数のパラメーターはJSON形式で渡されます 。 テキストデータだけでなく、メディア(写真、フラッシュ、音楽)も転送できます。 詳細はこちらをご覧ください 。
ニュースの削除
define('POST_ID',"12345"); // ,
define('UID',"12345"); // ,
$url = 'https://api.facebook.com/method/stream.remove?post_id='.POST_ID.'&uid='.UID.'&access_token='.$facebook->getAccessToken();
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_URL, $url);
$res = curl_exec($ch);
curl_close($ch);
成功した場合は1またはtrueが返され、それ以外の場合はJSON形式の文字列が返されます 。
ニュースにコメントを追加する
define('POST_ID',"12345"); //
$url = 'https://graph.facebook.com/'.POST_ID.'/comments';
$attachment = array(
'access_token' => $facebook->getAccessToken(),
'message' => "Hi",
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close ($ch);
リクエストが成功すると、文字列がJSON形式で正しくない場合、コメントのIDを返します 。 コメント識別子を使用して削除できます。
define('COMMENT_ID',"12345"); //
define(UID',"12345"); // ,
$url = 'https://api.facebook.com/method/stream.removeComment?comment_id='.COMMENT_ID.'&uid=123&access_token='. $facebook->getAccessToken()
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_URL, $url);
$res = curl_exec($ch);
curl_close ($ch);
成功した場合は1またはtrueが返され、それ以外の場合はJSON形式の文字列が返されます 。
すべてのニュースコメントを表示
//
$url = 'https://graph.facebook.com/'.POST_ID.'?access_token='.$facebook->getAccessToken();
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
応答として、コメントデータを含むJSON形式の文字列、またはエラー文字列を取得します。