프로필이 아닌 페이스 북 페이지의 벽에 어떻게 게시합니까?


86

나는 php로 작성된 블로그 사이트를 가지고 있으며 트위터에 새 블로그 게시물을 게시하고 php curl을 사용하여 전달 된 간단한 http 게시물 요청을 사용하여 자동으로 블로그 핑을 게시합니다.

블로그 사이트에 대한 페이스 북 페이지가 있고 페이지의 벽에 업데이트를 게시하고 싶습니다. 간단한 방법이 있습니까?

내가 정말로 원하는 것은 URL과 http post 요청으로 묶을 매개 변수 집합입니다.

프로필이 아닌 새 스타일 페이지의 벽에 게시하는 것입니다.

미리 감사드립니다.


wiki.developers.facebook.com/index.php/Main_Page 또는 개발자 사이트 developers.facebook.com/?ref=pf 에서 Facebook Developer Wiki를 사용해 보셨습니까 ?
DOK

나는 facebook dev에 관심이 없지만 그렇게 할 권한을 얻으려면 먼저 fb 앱을 작성해야한다고 생각합니다.
sepehr

답변:


65

github 에서 PHP SDK를 가져 오고 다음 코드를 실행합니다.

<?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);

위의 코드는 메시지를 담벼락에 게시합니다. 친구 나 다른 사람 담벼락에 게시 me하려면 해당 사용자의 Facebook 사용자 ID로 바꾸십시오. 자세한 내용은 API 문서를 참조하십시오.


그 코드는 훌륭하게 작동합니다! 그러나 게시물에는 그림이 없습니다 .. 여기서 내가 무엇을 놓치고 있습니까? 감사!
Diego

@Diego는 사진 URL을 확인하십시오. 위의 예에서는 mysite.com/pic.gif입니다. 그래서 그것은 주어진 URL에서 그림을 가져올 것입니다. 그래서 그것을 설정하십시오. 내가 FB 프론트에서 마지막으로 작업 한 것이 2010 년 8 월 이었기 때문에 fb 문서에서 매개 변수의 변경 사항을 확인하십시오.
Harish Kurup

$ facebook은 PHP 설치에 내장 된 변수입니까? 그렇지 않은 경우 $ facebook 인스턴스는 어떻게 생성됩니까?
sadmicrowave 2011 년

@sadmicrowave 변수 $ facebook은 Facebook 클래스의 객체입니다 (클래스 이름이 변경되었을 수 있으므로 아이디어를 얻은 후 문서를 읽으십시오). 다음 코드로 개체를 인스턴스화해야합니다. "$ facebook = new Facebook (array ( 'appId'=> APPID, 'secret'=> SECRETKEY, 'cookie'=> true));"
Harish Kurup 2011 년

또한 PHP SDK는 페이스 북 클래스에 액세스하도록 앱에 설치되어 있어야합니다
mitchellhislop

9

이것은 나를 위해 작동합니다.

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);
}

OAuth, 오류 200에 문제가 있습니다. 내 APP에서 manage_pages, publish_actions, publish_stream ...을 요청합니다.
Jepser Bernardino

8

Harish는 여기에 답을 가지고 있습니다- manage_pages인증 할 때 권한 을 요청 하고 게시 할 때 page-id대신 사용하는 것을 제외하고 는 me...

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

1
하지만 당신은 페이지로 게시 토큰 페이지 액세스가 필요합니다
덴마크어 이크발

5

Frank가 지적한대로 애플리케이션을 만들고 템플릿 피드 게시자를 사용하지 않고는 Facebook 담벼락에 자동으로 게시 할 수 없습니다.

당신이 할 수있는 유일한 일은 그들이 제공하는 '공유'위젯을 사용하는 것이며, 사용자 상호 작용이 필요합니다.


3

블로그가 RSS 피드를 출력하는 경우 Facebook의 " RSS Graffiti "애플리케이션을 사용하여 해당 피드를 Facebook의 담벼락에 게시 할 수 있습니다. 다른 RSS Facebook 앱도 있습니다. "RSS 앱용 Facebook"을 검색하십시오 ...


0

HTTP 메소드를 선택하고 선택적 매개 변수를 설정하여 API를 호출 할 수 있습니다.

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

Facebook 담벼락에 게시물 제출 :

fbConfig.php 파일을 포함하여 Facebook API를 연결하고 액세스 토큰을 얻습니다.

게시물 메시지, 이름, 링크, 설명 및 사진이 Facebook 담벼락에 제출됩니다. 게시물 제출 상태가 표시됩니다.

FB 액세스 토큰 ($ accessToken)을 사용할 수없는 경우 Facebook 로그인 URL이 생성되고 사용자는 FB 로그인 페이지로 리디렉션됩니다.

Facebook 벽에 게시 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);
}

굴절 :

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/


감사. 그래도 코드를 시도해 보셨습니까? 사용자 정의 링크 미리보기 스 니펫 은 이제 더 이상 사용되지 않으므로 코드가 페이지에 게시되지 않습니다 ( developers.facebook.com/blog/post/2017/06/27/… )
user919426
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.