0

Facebook で年齢制限のあるファン ページから投稿/ウォール投稿を取得して、自分のサイトに表示するのに助けが必要です。

ファンページは年齢制限があり、17 歳以上 (Facebook にログインしている場合) のみが閲覧できます。しかし、私のウェブサイトは (ローカルで) 年齢ゲートの背後にあるため、その Facebook ページからの投稿を自分のサイトに表示したいと考えています。

以前にそれが行われたのを見たことがありますが、その人のコードを見て、彼/彼女がどのようにそれを行ったかを確認することはできませんでした.

私は自分のアカウントに関連付けられた Facebook でアプリを作成しました。このアプリは、Facebook の任意のページを表示できます (年齢制限があるかどうかに関係なく)。

これが私のコードです

    <?php

function fetchUrl($url){

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_TIMEOUT, 20);

 $feedData = curl_exec($ch);
 curl_close($ch); 

 return $feedData;

}

$profile_id = "(Page id)";

//App Info, needed for Auth
$app_id = "123456789";
$app_secret = "123456789abcdefghij";

$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id={$app_id}&client_secret={$app_secret}");

$json_object = fetchUrl("https://graph.facebook.com/{$profile_id}/posts?{$authToken}");




$feedarray = json_decode($json_object);

echo $json_object;

foreach ( $feedarray->data as $feed_data )
{
    echo "<h2>{$feed_data->name}</h2><br />";
    echo "{$feed_data->message}<br /><br />";
}

  ?>

このコードは、年齢ゲートがないページでは機能しますが、年齢ゲートがあるページでは無効として返されます ($authToken が何も返さないため、JSON は何も処理できません)。

誰か私がこれを理解するのを手伝ってくれませんか?

4

1 に答える 1

0

アプリ アクセス トークンを使用してアクセスされるページのほとんどは、 Facebook の公開ページからデータを取得するように制限されています。このページは、でもログインせずに開くことができます。ページ。そのため、Facebook では、ページを表示するかどうかを決定できるように (まだログインしていない場合)、ログインする必要があります。同じことが次のようにも文書化されています。

ページを読むには、次のものが必要です。

  1. 人口統計学的に制限されていない公開ページのアプリまたはユーザー アクセス トークン
  2. 現在のユーザーが表示できる制限付きページのユーザー access_token (特別な権限は必要ありません)

そのため、ユーザー アクセス トークンを利用してページにアクセスし、Facebook がページの投稿へのアプリケーション アクセスを許可できるようにする必要があります。

于 2013-04-05T18:20:37.700 に答える