2009-03-27 33 views
86

Tôi có một trang blog viết bằng php và nó đăng bài viết blog mới lên twitter và ping blog tự động dưới mui xe bằng cách sử dụng các yêu cầu http đơn giản được chuyển bằng cách sử dụng php curl.Làm thế nào để bạn đăng lên tường trên một trang facebook (không phải hồ sơ)

Tôi có trang facebook cho trang blog và muốn cập nhật được đăng lên tường trên trang, có cách nào đơn giản để thực hiện việc này không?

Điều tôi thực sự muốn là url và tập hợp các thông số để gửi lên dưới dạng yêu cầu bài đăng http.

Lưu ý rằng đây là đăng lên tường trên trang kiểu mới chứ không phải tiểu sử.

Xin cảm ơn trước.

+0

Bạn đã thử các nhà phát triển Facebook Wiki tại http://wiki.developers.facebook.com/index.php/Main_Page hay ở nơi khác trong trang web nhà phát triển của họ http: //developers.facebook .com /? ref = pf? – DOK

+0

Tôi không vào facebook dev nhưng tôi nghĩ rằng bạn phải viết một ứng dụng fb đầu tiên, được ủy quyền để làm điều đó. – sepehr

Trả lời

5

Bạn không thể tự động đăng lên tường Facebook mà không cần tạo ứng dụng và sử dụng nhà xuất bản nguồn cấp dữ liệu theo khuôn mẫu như Frank đã chỉ ra.

Điều duy nhất bạn có thể làm là sử dụng tiện ích 'chia sẻ' mà họ cung cấp, yêu cầu tương tác của người dùng.

3

Nếu blog của bạn xuất ra nguồn cấp dữ liệu RSS, bạn có thể sử dụng ứng dụng "RSS Graffiti" của Facebook để đăng nguồn cấp dữ liệu đó lên tường của bạn trên Facebook. Ngoài ra còn có các ứng dụng RSS Facebook khác; chỉ cần tìm kiếm "Facebook cho các ứng dụng RSS" ...

65

Nhận PHP SDK từ github và chạy đoạn mã sau:

<?php 
$attachment = array(
    'message' => 'this is my message', 
    'name' => 'This is my demo Facebook application!', 
    'caption' => "Caption of the Post", 
    'link' => 'http://mylink.com', 
    'description' => 'this is a description', 
    'picture' => 'http://mysite.com/pic.gif', 
    'actions' => array(
     array(
      'name' => 'Get Search', 
      'link' => 'http://www.google.com' 
     ) 
    ) 
); 

$result = $facebook->api('/me/feed/', 'post', $attachment); 

các mã trên sẽ đăng thông báo trên vào tường của bạn ... và nếu bạn muốn đăng lên tường của bạn bè hoặc người khác rồi thay thế me bằng Id người dùng Facebook của người dùng đó .. để biết thêm thông tin, hãy xem Tài liệu API.

+0

mã đó hoạt động tuyệt vời !, nhưng trong bài đăng không có hình ảnh .. Tôi đang thiếu gì ở đây? Cảm ơn! – Diego

+0

@Diego kiểm tra URL ảnh. trong ví dụ trên mysite.com/pic.gif của nó. do đó, nó sẽ lấy cho pic trong url đã cho. vì vậy hãy thử thiết lập nó. xin vui lòng kiểm tra các tài liệu fb cho bất kỳ thay đổi trong tham số, cos lần cuối cùng tôi làm việc trong FB phía trước là aug 2010 .. –

+0

là $ facebook một biến được xây dựng trong php cài đặt? nếu không, ví dụ $ facebook được tạo ra như thế nào? – sadmicrowave

8

Harish có câu trả lời ở đây - ngoại trừ bạn cần phải yêu cầu manage_pages phép khi chứng thực và sau đó sử dụng page-id thay vì me khi đăng ....

$result = $facebook->api('page-id/feed/','post',$attachment); 
+1

nhưng bạn phải có mã thông báo truy cập trang để đăng bài như trang –

9

này làm việc cho tôi:

try { 
     $statusUpdate = $facebook->api('/me/feed', 'post', 
       array('name'=>'My APP on Facebook','message'=> 'I am here working', 
       'privacy'=> array('value'=>'CUSTOM','friends'=>'SELF'), 
       'description'=>'testing my description', 
       'picture'=>'https://fbcdn-photos-a.akamaihd.net/mypicture.gif', 
       'caption'=>'apps.facebook.com/myapp','link'=>'http://apps.facebook.com/myapp')); 
} catch (FacebookApiException $e) { 
     d($e); 
} 
+0

Tôi đang gặp sự cố với OAuth, lỗi 200. APP của tôi yêu cầu manage_pages, publish_actions, publish_stream ... Bất kỳ ý tưởng nào? –

0

Bạn có thể thực hiện cuộc gọi api bằng cách chọn phương thức HTTP và đặt tham số tùy chọn:

$facebook->api('/me/feed/', 'post', array(
    'message' => 'I want to display this message on my wall' 
)); 

Gửi bài viết lên Facebook tường:

Bao gồm các tập tin fbConfig.php để kết nối Facebook API và có mã thông báo truy cập.

Bài viết, tên, liên kết, mô tả và hình ảnh sẽ được gửi lên tường Facebook. Trạng thái gửi bài đăng sẽ được hiển thị.

Nếu mã thông báo truy cập FB ($ accessToken) không khả dụng, URL đăng nhập Facebook sẽ được tạo và người dùng sẽ được chuyển hướng đến trang đăng nhập FB .

Post to facebook wall php sdk

<?php 
//Include FB config file 
require_once 'fbConfig.php'; 

if(isset($accessToken)){ 
    if(isset($_SESSION['facebook_access_token'])){ 
     $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
    }else{ 
     // Put short-lived access token in session 
     $_SESSION['facebook_access_token'] = (string) $accessToken; 

     // OAuth 2.0 client handler helps to manage access tokens 
     $oAuth2Client = $fb->getOAuth2Client(); 

     // Exchanges a short-lived access token for a long-lived one 
     $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']); 
     $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken; 

     // Set default access token to be used in script 
     $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
    } 

    //FB post content 
    $message = 'Test message from CodexWorld.com website'; 
    $title = 'Post From Website'; 
    $link = 'http://www.codexworld.com/'; 
    $description = 'CodexWorld is a programming blog.'; 
    $picture = 'http://www.codexworld.com/wp-content/uploads/2015/12/www-codexworld-com-programming-blog.png'; 

    $attachment = array(
     'message' => $message, 
     'name' => $title, 
     'link' => $link, 
     'description' => $description, 
     'picture'=>$picture, 
    ); 

    try{ 
     //Post to Facebook 
     $fb->post('/me/feed', $attachment, $accessToken); 

     //Display post submission status 
     echo 'The post was submitted successfully to Facebook timeline.'; 
    }catch(FacebookResponseException $e){ 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
    }catch(FacebookSDKException $e){ 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 
}else{ 
    //Get FB login URL 
    $fbLoginURL = $helper->getLoginUrl($redirectURL, $fbPermissions); 

    //Redirect to FB login 
    header("Location:".$fbLoginURL); 
} 

refrences:

https://github.com/facebookarchive/facebook-php-sdk

https://developers.facebook.com/docs/pages/publishing/

https://developers.facebook.com/docs/php/gettingstarted

http://www.pontikis.net/blog/auto_post_on_facebook_with_php

https://www.codexworld.com/post-to-facebook-wall-from-website-php-sdk/

+0

Cảm ơn. Bạn đã thử mã mặc dù? *** Đoạn trích xem trước liên kết tùy chỉnh *** hiện đã lỗi thời, vì vậy mã sẽ không đăng lên trang (https://developers.facebook.com/blog/post/2017/06/27/API-Change-Log- Sửa đổi-Link-xem trước /) – user919426

Các vấn đề liên quan