Facebook SDK を使用して、自分の Facebook ページにテスト用のウォール ポストを投稿しています。私が望むのは、PHP CRONスクリプトを使用して8時間ごとにFacebookページに投稿することです。そのために、Facebookログインダイアログページをバイパスする必要があります。コマンドラインまたはオンエアから認証する方法を知っている人はいますか?
3 に答える
Facebook は、ユーザーが Facebook アプリを使用するためのアクセス トークンを提供します。初めて、ユーザーは facebook ログインを介してログインする必要があります。サイトにログインした後、アプリへのアクセス許可を求められます。ユーザーが同意すると、facebook は URL を介してコードを返します。コードを取得し、それを使用してアクセストークンを取得する必要があります
次のコードを使用して
$url = "https://graph.facebook.com/oauth/access_token?client_id=". $yourappId ."&redirect_uri=". urlencode($this->redirect_url) ."&client_secret=". $youappsecret."&code=". $code;
$auth_token = $this->getContents($url);
$str = explode('=',$auth_token);
$token = explode('&expires', $str[1]);
ここで、$token はユーザーのアクセス トークンを持ちます。そのトークンをローカル データベースに保存し、そのトークンを使用して Facebook ウォールにメッセージを投稿できます。簡単です..それだけです。
Fb ウォールにメッセージを投稿するには
$fb_id = "User_fb_id"
$access_token = "User_Access_Token_Take by Above code"
$msg = "Message_to_post"
$img_path = "Image_Path"
$facebook = new Facebook(array(
'appId' => $this->appId,
'secret' => $this->secret,
'cookie' => true));
if($msg != NULL) {
$attachment = array(
'message' => $msg,
'name' => 'NHM',
'picture' => $img_path);
}
try {$result = $facebook->api('/'. $fb_id . '/feed/',
'post',
$attachment);
if(isset($result['id']))
return true;
else
return false;
} catch(FacebookApiException $e) {
return $e->getMessage();
}
ここでは、Facebook ユーザー ID を使用する必要があります。ユーザー ID を取得するには、次のコードを使用します
$url = "https://graph.facebook.com/me?access_token=". $access_token;
$userInfo = $this->getContents($url);
$userInfo = json_decode($userInfo, true);
public function getContents($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec ($ch);
curl_close ($ch);
return $content;
}
これを試して 。問題があればお知らせください
ページとして認証すると、データベースに保存できるアクセス トークンが得られ、PHP を使用してさまざまなタスクを実行できます。
これは、投稿のスケジューリング、複数のページの維持、一度に複数のページへの投稿、写真のアップロード、Graph APIを使用したその他の多くのアクティビティなど、cron を使用してさまざまなことを行うのに役立ちます。その方法の詳細については、ドキュメントを確認してください。
注: アプリを 1 回認証し、ページ アクセス トークン キーを保存するだけで済みます。これを行うと、再度ログインする必要はなく、アクセス トークンを使用してページでさまざまなタスクを実行できます。
いいえ、Facebook のログイン ダイアログ ページをバイパスする方法はありません。PHP SDK を使用して次のコードを使用すると、アクセス トークンを取得できます。
$extendedToken = $facebook->setExtendedAccessToken();
$facebook->api('<PAGE_ID>?fields=access_token');
次に、単に使用します
$facebook->setAccessToken();
あなたのページに投稿します。拡張アクセス トークンを生成する前に、必ずアクセス許可を取得してください。