Я пытаюсь получить всю ленту новостей со своей страницы в Фейсбуке, а не с помощью javascript api.
У кого-нибудь есть рабочий пример?
Я пытался, но я не могу сделать это правильно, я могу получить фотографии из альбомов, но я не могу получить каналы, и я не знаю, что я делаю неправильно.
Любой вклад действительно приветствуется. Спасибо!
У меня есть этот код:
Редактировать
ОК, у меня есть код внутри кода инициализации, как показано ниже, и он не работает, он не выполняется, и я не получаю ошибок:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<%=facebookAppId%>', // App ID
channelUrl : 'www.mypage.se/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
// get the wall - feed
var page_id = '<%=facebookPageId%>';
FB.api('/' + page_id, {fields: 'access_token'}, function(resp2) {
if(resp2.access_token) {
alert(resp2.access_token);
FB.api('/page id/feed?access_token='+resp2.access_token, function(response) {
var ul = document.getElementById('feed');
for (var i=0, l=response.data.length; i<l; i++) {
var
feed = response.data[i],
li = document.createElement('li'),
a = document.createElement('a');
a.innerHTML = feed.message;
a.href = feed.link;
li.appendChild(a);
ul.appendChild(li);
}
});
}
});
};//end window.fbAsyncInit
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
Так почему я могу иметь, например:
FB.api ('/ facebook id', функция (ответ) {
alert («Ваше имя» + response.name);
});
внутри кода инициализации, а не другого кода?
Мне все еще нужна некоторая структурная помощь, чтобы написать обратные вызовы на странице, чтобы она выглядела хорошо, как на Facebook.
Мне нравится писать "сообщение, изображение, ссылку, имя" и, может быть, что-то еще?
Как я тестирую, чтобы получить сообщения в этом примере, и некоторые обратные вызовы отображаются как «неопределенные» на странице? Означает ли это, что сообщение не имеет значения, когда я его получаю?
Если так, как я не могу записать пустые значения - неопределенные?
Спасибо!
UPDATE:
Если я использую этот код, то он читает ленту новостей, но только если я вошел в Facebook?
Я начинаю путаться, так как считаю, что приведенный выше код должен работать:
Сначала я спрашиваю токен доступа при первом вызове, и когда я получаю токен доступа, а затем использую его во втором вызове, что я делаю неправильно?
FB.api('/my userid or pageid/feed?access_token=the acces token that I get from the Graph API Explorer', {limit:5} , function(response){
if (response && response.data && response.data.length){
alert(response.message);
var ul = document.getElementById('feed');
for (var j=0; j<response.data.length; j++){
var feed = response.data[j],
li = document.createElement('li'),
a = document.createElement('a');
a.innerHTML = feed.message;
a.href = feed.link;
li.appendChild(a);
ul.appendChild(li);
}
}
});
- Я получил пару неопределенных ответов, как я могу не написать их на странице?
- Как заставить работать приведенный выше код, даже если пользователь, посещающий веб-страницу, не вошел в Facebook?
- Я делаю другие звонки, чтобы получить фотографии альбома без проблем, отображая их на веб-странице, я не понимаю, почему это отличается?
- Если я хочу настроить это для клиента (когда он закончится), какие шаги мне нужно предпринять? Я немного запутался ...: -)
- Я хотел бы получить сообщение, изображение, лайки и т. Д. С помощью звонка
и отобразить его, как он есть на стенке, какие-либо предложения здесь?
Хорошо, наконец-то все заработало :-)
Я получил правильный токен доступа и теперь могу отображать каналы.
Я получил правильный токен здесь:
https://graph.facebook.com/oauth/access_token?client_id=myapp_id&client_secret=myapp_secret&grant_type=client_credentials
И теперь я могу использовать приведенный ниже код как для получения пользовательских каналов, так и для страниц, просто меняя идентификатор страницы!
var page_id = '<%=facebookPageId%>';
var pageaccessToken='xxxxxxxxxxxxxxxxxxxxxxxxxx';
FB.api('/' + page_id + '/feed?access_token='+ pageaccessToken, {limit:5} , function(response){
if (response && response.data && response.data.length){
var ul = document.getElementById('pagefeed');
for (var j=0; j<response.data.length; j++){
var feed = response.data[j],
li = document.createElement('li'),
a = document.createElement('a');
a.innerHTML = feed.message;
a.href = feed.link;
li.appendChild(a);
ul.appendChild(li);
}
}
});
Хорошо, теперь это работает, но я получил неопределенное в ответе?
Что вызывает это, потому что это пустое значение, которое я получаю в ответе?
Что я могу сделать, чтобы он не отображался на странице?