簡體   English   中英

Facebook Post鏈接作為頁面問題

[英]Facebook Post Link as Page Issue

我正在編寫一個簡單的Facebook頁面標簽應用程序,它將使我可以將消息(狀態更新,鏈接,照片和視頻)發布到多個頁面。

我在嘗試將各種內容發布到頁面的時間軸上的Facebook API(使用PHP SDK)遇到問題。

當我發布狀態更新時,它會在頁面名稱下成功發布。

    $pages = $this->facebook->api('me/accounts', 'GET');
    $pages = json_decode(json_encode($pages), FALSE);

    foreach ($pages->data as $page) {
        if (in_array($page->id, $_POST['pages'])) {

            $data = array(
                'access_token' => $page->access_token,
                'message' => Arr::get('status', $_POST)
            );

            $queryString = http_build_query($data);

            $this->facebook->api("$page->id/feed?".$queryString, 'POST');
        }
    }

一旦我添加了更多參數(即嘗試發布鏈接),該帖子就會在我的管理員帳戶下發布(即Chris Hayes發布了指向“ Page X”的鏈接)。

    $pages = $this->facebook->api('me/accounts', 'GET');
    $pages = json_decode(json_encode($pages), FALSE);

    foreach ($pages->data as $page) {
        if (in_array($page->id, $_POST['pages'])) {

            $data = array(
                'access_token' => $page->access_token,
                'link' => Arr::get('link', $_POST),
                'message' => Arr::get('status', $_POST)
            );

            $queryString = http_build_query($data);

            $this->facebook->api("$page->id/feed?".$queryString, 'POST');
        }
    }

我不知道這是怎么回事。 從字面上看,唯一改變的是添加“ link”參數。 如果有人可以幫助我,我將不勝感激!

編輯我獲得的權限是:電子郵件,user_about_me,user_likes,user_birthday,manage_pages,publish_stream

克里斯,問候

我在另一篇文章中找到了答案。

    $pages = $this->facebook->api('me/accounts', 'GET');
    $pages = json_decode(json_encode($pages), FALSE);

    foreach ($pages->data as $page) {
        if (in_array($page->id, $_POST['pages'])) {

            $this->facebook->setAccessToken($page->access_token);

            $data = array(
                'access_token' => $page->access_token,
                'name' => 'Facebook API: Posting As A Page',
                'link' => 'https://www.webniraj.com/2012/08/09/facebook-api-posting-as-a-page/',
                'caption' => 'The Facebook API lets you post to Pages you own automatically - either as real-time updates or in the case that you want to schedule posts.',
                'message' => 'Check out my new blog post!'
            );

            $queryString = http_build_query($data);

            $this->facebook->api("$page->id/feed?".$queryString, 'POST');
        }
    }

關鍵是通過Facebook SDK設置頁面訪問令牌。 這可能是因為我在其他地方使用該庫將訪問令牌設置為用戶的令牌。 我猜該庫必須覆蓋作為參數發送的令牌。

$this->facebook->setAccessToken($page->access_token);

參考: 以頁面的形式發布到Facebook頁面(不是個人)


編輯:我剛剛發現的另一個問題是我自己構建查詢字符串並將其附加到API端點,如下所示:

$this->facebook->api("$page->id/feed?".$queryString, 'POST');

您應該做的是發送$ data數組作為API調用的第三個參數:

$this->facebook->api("$page->id/feed", 'POST', $data);

PHP SDK在$ data中尋找一個'access_token'參數,因為我沒有在該數組中發送數據,所以找不到它(因此默認使用我之前設置的用戶訪問令牌)。

在將數據作為API調用的第三個參數發送之后,我能夠刪除以下行:

$this->facebook->setAccessToken($page->access_token);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM