我有两个facebook应用'A'和'B'分别与domain_A和domain_B相关联; 'A'已激活'Stream post URL security'标志。
我需要使用“facebook sdk 4.0 for php”从应用'B'发布内容到粉丝页面X,问题是仅发布成功禁用A的流后URL安全标记;另外,FacebookRequest抛出异常:
Stream帖子网址不允许使用一个或多个指定的网址 安全应用设置。它必须与网站URL或Canvas URL匹配,或 域必须是App域之一的子域。
没有意义,为什么facebook api会在应用A中检查这个标志?
我仔细检查了ID和密钥,也许A有一个永久开放的会话,就像导航员中的Facebook用户一样?
这是代码:
FacebookSession::setDefaultApplication($api_id_B,api_secret_key_B);
FacebookSession::enableAppSecretProof(false);
$session = FacebookSession::newAppSession($api_id_B,api_secret_key_B);
try {
$post_id = (new FacebookRequest(
$session,
'POST',
'/' . $fanpage_id_X . '/feed',
array(
'access_token' => $fanpage_token_X,
'message' => $message_post,
'link' => $link_inside_domain_B,
'caption' => $caption_post,
'name' => $link_inside_domain_B,
'description' => $description_post,
'published' => true )
)
)->execute()->getGraphObject()->asArray();
echo 'post shared!';
} catch (FacebookRequestException $e) {
echo 'ERROR! ' . $e->getMessage();
} catch (Exception $e) {
echo 'ERROR! ' . $e->getMessage();
}
任何帮助将不胜感激, 感谢。
答案 0 :(得分:0)
@WizKid是对的,真正的问题是$ fanpage_token_X实际上是为A生成的,因此即使B发起了会话,也会应用其策略。