1

Facebook にログインした後、 https://www.facebook.com/pagesのコンテンツを保存したい(特定のページ ID ではなく、表示される URL を参照し、お気に入りのページや選択したページではなく、推奨されるお気に入りのページを表示します)

ユーザー管理者のページのリストも、ユーザーが好きなページのリストも取得しようとしていません。したがって、/me/accounts または /me/likes は役に立ちません。前回この URL にアクセスしたときから、Facebook に追加されたすべてのページを取得しようとすると、好きなページとして提案されます。

私はhttp://developers.facebook.com/docs/reference/php/の例を使用しており、私が持っているユーザーのプロファイルを取ります。ここまでは順調ですね。

を使用してデータを取得しようとしました

$facebook->api('/me/pages'), 
$facebook->api('/pages'), 
$facebook->api('/pages'), 
$facebook->api('/id=USER_ID/pages') 

などがありますが、それらのすべてが間違っているか、Graph API ページを使用していますか?id=USER_ID サポートされていない get/post 要求がありました。

Igy が言ったように、「推奨ページは API の機能ではなく、facebook.com インターフェースのみです」

他に試したことは、url を file_get_contents で保存することです。私が使用したURLとして

ini_set('user_agent','MSIE 4\.0b2;'); //to pretend that I am a browser, it works
http://www.facebook.com/pages?id=USER_ID and
http://www.facebook.com/pages

正常に保存されているのに、facebook が認証を認識せず、ログインしていないユーザーに必要なページが表示されます。

Facebook JavaScript Test Console で JavaScript を試してみましたが、ログインすると、承認を認識するページが開きます。コードは

<div id="authResponse"></div>
<script>
var
  div         = document.getElementById('authResponse'),
  showAuthRecord = function(response) {
    if (!response.authResponse) {
      div.innerHTML = '<em>Not Connected</em>';
    } else {
      var html = '<table>';
      for (var key in response.authResponse) {
        html += (
          '<tr>' +
            '<th>' + key + '</th>' +
            '<td>' + response.authResponse[key] + '</td>' +
          '</tr>'
        );
      }
      div.innerHTML = html;
    }
  };
FB.getLoginStatus(function(response) {
  showAuthRecord(response);
  FB.Event.subscribe('auth.authResponseChange', showAuthRecord);
});

window.open('https://www.facebook.com/pages','mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0');
</script>

PHP、Graph API、FQL Query でこれを行う方法はありますか? または、私が開いたページを保存するためのJavaScript、コードを追加しますか?私はまだ何も見つけていません。

4

1 に答える 1

0

あなたが求めているものは、Facebook プラットフォームを通じて入手することはできません。また、情報を抽出するためにページをスクレイピングしようとすることも、Facebook の規約に違反しています。

事前の許可なしに、自動化された手段 (ボット、ロボット、スパイダー、スクレーパーの収集など) を使用して、ユーザーのコンテンツや情報を収集したり、Facebook にアクセスしたりしないでください。

また、ユーザーにパスワードとログイン情報を尋ねることはできません。Facebook プラットフォーム ポリシーを参照してください。

Facebook のユーザー名またはパスワードをプロキシ、要求、または収集する機能を含めてはなりません。

于 2013-01-11T09:31:35.873 に答える