2012-02-20 3 views
5

Tôi muốn đăng lên trang tường facebook như một trang sử dụng PHP. Tôi đã có access_token bởi các liên kết dưới đây.Đăng lên trang facebook như một trang

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=123456789&redirect_uri=http%3A%2F%2Fmysite.net&scope=publish_stream,manage_pages,offline_access 
https://graph.facebook.com/me/accounts?access_token=... 

Tôi đang sử dụng mã đơn giản này:

$appid  = ""; 
$secret  = ""; 
$pageid  = ""; 
$access_token = ""; 

require_once("facebook-php-sdk/src/facebook.php"); 

$facebook = new Facebook(array(
    'appId' => $appid, 
    'secret' => $secret 
)); 

try { 
    $args = array(
     'access_token' => $access_token, 
     'message'  => 'Test', 
     'link'   => 'http://www.test.com', 
     'description' => 'Test' 
    ); 

    $post_id = $facebook->api("/$pageid/feed","post",$args); 

} catch (FacebookApiException $e) { 
    error_log($e); 
} 

Và đó là lỗi tôi nhận được:

OAuthException: (#200) Posts where the actor is a page cannot also include a target_id 

Nhưng niêm yết/me/thức ăn sẽ không làm việc không. Tất cả các giải pháp tôi đã googled không hoạt động nữa, tài liệu chính thức đã không giúp đỡ. Tôi đã nhận nó làm việc khi đăng bài như một người sử dụng (không phải là một trang) và với javascript api (yêu cầu 'chia sẻ' nhấp vào hành động của người dùng).

Bất kỳ ai biết giải pháp cho tự động đăng lên trang fb dưới dạng trang? vài chi của ngày bực bội cố gắng tìm nó ra -_-

Cảm ơn,

A.

+0

Mã PHP là tốt, nhưng tôi đã sai access_token. Tôi đã nhận đúng với ứng dụng khác nhau (kết nối facebook đơn giản - plugin wordpress). Không có thời gian để chơi với đúng access_token:/ – akashic

Trả lời

5

trang không thể đăng lên tường của người dùng (đó là lý do tại sao bạn đang nhận được OAuthException nói rằng "như là một trang , bạn không thể đặt target_id "). Trước tiên, bạn sẽ phải tạo một ứng dụng và nhận được sự cho phép của người dùng (publish_stream) để đăng lên nguồn cấp dữ liệu của họ thông qua ứng dụng đã nói.

+1

Cảm ơn câu trả lời. Tôi đang cố gắng đăng lên tường trang (do đó/$ pageid/feed và $ access_token). Tôi đã tạo ứng dụng (thiết lập quyền). Tôi sẽ xem xét kỹ hơn về stream.publish vào ngày mai. – akashic

+0

Ok, đã tìm thấy thêm thời gian. Như được viết trong bài đăng đầu tiên của tôi, ứng dụng của tôi đã có quyền publish_stream (dòng thứ 2). Tôi đã quản lý để đăng qua stream.publish nhưng vì REST API không được chấp nhận, tôi sẽ cố gắng thực hiện nó bằng công cụ hiển thị. – akashic

3

Tôi cho rằng bạn có một số kiến ​​thức về ứng dụng và cách đăng bài hoạt động.

1.Bạn phải nhận được Mã thông báo truy cập trang và sử dụng mã này trên mảng.

2.you sử dụng này

"/$pageid/feed" 

thử sử dụng này

$facebook->api($pageID . '/feed','POST' 

Thanks ...

+0

Nếu bạn nhìn vào bài viết của tôi, bạn sẽ thấy rằng 1) Tôi đã có mã thông báo truy cập và 2) Tôi truy vấn api bằng $ facebook-> api ("/ $ pageid/feed", "post", $ args); – akashic

+0

@akashic cố gắng bằng cách tách riêng $ pageid –

+0

@akashic kiểm tra liên kết này về cùng một vấn đề http://jorgealbaladejo.com/2011/06/13/publish-to-facebook-page-or-applications-wall-with- php / –

2

Tôi đã có cùng một vấn đề. Lý do là tôi là quản trị viên của nhiều trang và tôi đã cố gắng đăng bằng mã thông báo của một trang khác.