首页 文章

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

提问于
浏览
0

我有两个facebook应用'A'和'B'分别与domain_A和domain_B相关联; 'A'已激活'Stream post URL security'标志 .

我需要使用应用程序'B'中的“facebook sdk 4.0 for php”将内容发布到fanpage X,问题是仅发布成功禁用A的流后URL安全标记;另外FacebookRequest抛出异常:

Stream post URL安全应用设置不允许使用一个或多个给定的URL . 它必须与网站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

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

相关问题