首页 文章

用php-sdk分享facebook中的链接

提问于
浏览
0

我正在尝试与php-sdk在Facebook上分享链接 . 在https://developers.facebook.com/tools/explorer中使用Graph API Explorer并选择我创建的应用程序和页面的admin用户,它为我提供了访问令牌并且可以完美地共享链接,但是从具有相同令牌的代码中我总是得到错误

图表返回错误:无效的OAuth访问令牌 .

我明白这是一个身份验证错误,但是,避免认证不是使用令牌的目的?如果没有,如何记录管理员用户执行任务以及为什么在https://developers.facebook.com/docs/php/howto/example_post_links/5.0.0中没有提到 . . 想法是分享链接到用户页面管理员,而不是用户登录我的网站 . 这是代码 .

public function shareOnFacebook($link)
{
    $pageId = "XXXXXXXXXXX";
    $accessToken = "YYYYYYYYYYYYYY";
    $appId = "ZZZZZZZZZZZ";
    $appSecret = "SSSSSSSSSSSSS";

    $fb = new Facebook([
        'app_id' => '{'.$appId.'}',
        'app_secret' => '{'.$appSecret.'}',
        'default_graph_version' => 'v2.2',
    ]);

    $linkData = [
        'link' => 'http://www.example.com',
        'message' => 'User provided message',
    ];

    try {

        $response = $fb->post('/'.$pageId.'/feed', $linkData, '{'.$accessToken.'}');
    } catch(FacebookResponseException $e) {
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(FacebookSDKException $e) {
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }
}

1 回答

  • 0

    您应该使用访问令牌替换整个字段:

    $response = $fb->post('/'.$pageId.'/feed', $linkData, '{'.$accessToken.'}');
    

    应该

    $response = $fb->post('/'.$pageId.'/feed', $linkData, $accessToken);
    

    我想将访问令牌添加到 $linkData 应该也可以 .

相关问题