2014-03-30 80 views
0

我想發佈到名爲XY的頁面,它應該直接顯示在頁面上,而不是作爲來自其他用戶(管理員)的發佈。這是我從http://qscripts.blogspot.de/2011/02/post-to-your-own-facebook-account-from.html改編的代碼,但是這會發布到其他用戶的區域而不是主頁面。如果我用「我」替換頁面ID號碼,它會發布到管理頁面並正確顯示到主區域。作爲此頁面發佈消息到頁面牆(不是管理員)

#!/usr/bin/perl -I/opt/ActivePerl-5.16/site/lib/ 

# http://qscripts.blogspot.de/2011/02/post-to-your-own-facebook-account-from.html 

use strict; 
use warnings; 
use open qw(:std :utf8); 
use LWP::Simple; 
use YAML; 
use JSON; 
use URI; 
use utf8; 

my $access_token = 'top secret'; 

graph_api('1484559088426611/feed', { 
    access_token => $access_token, 
    message  => 'Hello World! I’m posting Facebook updates from a script!', 
    description => 'You want to create a script to read messages and post status updates to your own ' 
       . 'Facebook account, but you find the official documentation confusing and ' 
       . 'you aren’t sure where to start. Search no more because here you’ll find ' 
       . 'the easiest way to do just this.', 
    method  => 'post' 
}); 


exit 0; 

sub graph_api { 
    my $uri = new URI('https://graph.facebook.com/' . shift); 
    $uri->query_form(shift); 
    my $resp = get("$uri"); 
    return defined $resp ? decode_json($resp) : undef; 
} 

回答

4

雖然張貼在一個頁面上,如果您使用的用戶的訪問令牌/ ADMIN的職位將被髮布爲用戶/管理員,但不是作爲一個頁面本身。

要將頁面張貼爲頁面本身,您應該使用page access token。要獲得頁面訪問令牌,您需要獲得許可manage_pages,並且您可以致電/{user-id}/accounts。這樣你將獲得你的頁面的訪問令牌。

現在的好處是,你可以有一個頁面訪問令牌永不過期!我已經在這裏解釋了步驟:https://stackoverflow.com/a/18322405/1343690

希望它有幫助。祝你好運!

+0

謝謝!爲了包裝這個GET,我需要另一個perl腳本,對吧? –

+0

啊和'manage_pages'設置在臉書裏,對吧?如果我是這個頁面的管理員,我應該沒問題,不是嗎? –

+0

爲什麼其他腳本?您只能將其添加到當前腳本中。獲取令牌之前需要設置權限。我不確定你是如何得到令牌的(使用登錄流或圖形API瀏覽器) –

相關問題