1

登录 facebook 后,我想保存https://www.facebook.com/pages的内容(没有特定的页面 ID,而是您看到的 url,并查看建议的收藏页面,而不是我喜欢或选择的页面)

我不是试图获取用户管理员的页面列表,也不是他们喜欢的页面列表。所以 /me/accounts 或 /me/likes 没有用。我尝试获取 Facebook 中添加的所有页面,从我上次访问此 url 开始,它建议它们作为我可能喜欢的页面

我正在使用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 有不支持的获取/发布请求。

正如 Igy 所说“建议页面不是 API 的功能,只有 facebook.com 界面”

我尝试的其他方法是使用 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 测试控制台中尝试了 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 回答