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、コードを追加しますか?私はまだ何も見つけていません。