2

これが以前に対処されていた場合は申し訳ありませんが、私のウェブサイト担当者はこれを機能させるのに問題があります. Facebook オープン グラフ API を使用して、PHP Web サイト CMS から Facebook ビジネス ページに紹介状を投稿しています。Facebook のプロフィールを持っていて、プロフィールからビジネス ページを作成しました。また、プロファイルの下にアプリを作成して、アプリ ID と秘密鍵を取得します。これは、グラフ API が自分の代わりに自分の Web サイトから Facebook のビジネス ページに投稿するために使用されます。問題は、投稿が自分のビジネス ページに直接移動し、自分として、または自分に代わってではなく、自分のビジネスとして投稿する必要があることです。現在、API は自分のビジネス ページを介してリンクを共有していることを示すプロファイル ウォールに投稿を直接送信していますが、ビジネス ページにはまったく表示されません。紹介文をプロフィール ウォールではなく、ビジネス ページに直接投稿する方法が必要です。それ、どうやったら出来るの?私の理解では、彼は個人 ID とアプリ シークレットとビジネス ページのアプリ ID とシークレットを使用しましたが、同じ結果が得られたようです。
以下のコードは使用されているものです。

<?php
$facebook = new Facebook(array(
    'appId'  => 'myappid',
    'secret' => 'mysecrectkey',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {   
    try
    {
        $user_profile = $facebook->api('/me');
        $AccessToken  = $facebook->getAccessToken();
        $data = array("message" => $pdes,"link" => "http://www.website.com.au/testimonial.php", "name" => $name);
        $share = $facebook->api("/me/feed", "POST", $data);
    }
    catch (FacebookApiException $e)
    {
        error_log($e);
        $user = null;
    }
}
?>
4

1 に答える 1

0

さて、あなたの問題はここにあります:

$share = $facebook->api("/me/feed", "POST", $data);

このコードは、ページではなくウォールにメッセージを送信します。自分のページに代わって Facebook ページに投稿するには、まず、アプリがアクセス許可を取得する必要がmanage_pagesあります。publish_stream取得したら、投稿するページのアクセス トークンを取得する必要があります。

$pages = $facebook->api('/me/accounts');
foreach($pages as $page)
{
 if($page['id'] == YOUR_PAGE_ID)
    $data['access_token'] = $page['access_token'];
}

ページ アクセス トークンを取得したら、それを使用してページのウォールにメッセージを送信する必要があります。

$facebook->api(YOUR_PAGE_ID . '/feed', 'POST', $data);
于 2013-03-08T07:41:37.010 に答える