Facebook应用程序评估来自另一个Facebook应用程序的“Stream post URL security”标志

时间:2016-01-15 21:39:09

标签: facebook facebook-graph-api facebook-sdk-4.0 facebook-app-requests

我有两个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();
}

任何帮助将不胜感激, 感谢。

1 个答案:

答案 0 :(得分:0)

@WizKid是对的,真正的问题是$ fanpage_token_X实际上是为A生成的,因此即使B发起了会话,也会应用其策略。