私は何も助けてくれない数多くのチュートリアルやドキュメントを掘り下げてうんざりです。私は(すべてが管理コントロールパネルの内側に配置された)今持っている何Facebook PHP SDK - 特定のアカウントでログインする必要があります
:
- ユーザーが正しいアカウント(付与された権限を持つページの管理者)にログインしている場合は、すべてが正常に動作しますが、ページ上のポストは次のように掲載されています偽装サイト。
- 彼が他のアカウントにログインしている場合、何も起こりません。サイトは彼を自分の壁にリダイレクトします。
- 彼は任意のアカウントにログインしていない場合、彼はFacebookのログインにリダイレクトされます - 彼は正しいアカウントにログオンした場合、彼はACPに戻ります(それが彼のフォームをクリアしますので、それは、悪いソリューションです)
Iログインしている場合
- 、それは私がuのだ現時点で具体的な(正しい)アカウント
へのログインと
マイコード:
<?php
/*(...)*/
$facebook = new Facebook(array(
'appId' => $apiid,
'secret' => $secret,
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
if($me) {
//In order to post to the page later on we need to generate an Access Token for that page, to do this we get me-accounts in the following api call
$accounts = $facebook->api('/me/accounts');
//Loop through the array off accounts to find the page with a matching ID to the one we need
foreach($accounts['data'] as $account){
if($account['id'] == PAGEID){
$ACCESS_TOKEN = $account['access_token'];
}
}
}
$message=$data['facebook_text'];
$attachment = array(
'message' => $data['facebook_text'],
'name' => $data['name'],
'description' => '',
'link'=>$someurl,
'access_token' => $ACCESS_TOKEN
);
if($image_url != NULL) $attachment['picture'] = $image_url;
try {
if($facebook->api('/PAGEID/feed', 'post', $attachment))
{
//other stuff
}
} catch (FacebookApiException $e) {
error_log($e);
//other stuff
}
}
else
{
$login_url = $facebook->getLoginUrl();
header("Location: $login_url");
exit;
}
/* (...) */
?>
それは、フォーム内だからソリューションは、どこにもリダイレクトすることはできませんので、すべてが失われdata'll。
ページの管理者はどういう意味ですか? Facebookのページ?彼が別のアカウント(facebookアカウント?)にログインしていて、あなたのコードに彼のfacebookページにリダイレクトされるという指示がない場合でも! 詳細を教えてください...より多くのコードを提供してください – ifaour