Facebook Доступ до маркера для сторінок


115

У мене є сторінка у Facebook, що я хочу отримати з неї деякі речі. По-перше, це канали, і з того, що я читаю, вони є загальнодоступними (немає потреби в access_token). Але я хочу також отримати події ... і вони не є загальнодоступними і їм потрібен access_token.

Я не хочу, щоб користувач увійшов у Facebook чи щось подібне. Я просто хочу висунути всі дані, які я можу, з цієї лише сторінки. Ось чому я вже відкинув багато знайдених тут прикладів, і той, який знайшов тут, https://developers.facebook.com/blog/post/500/ , оскільки вони хочуть, щоб користувач увійшов або вимагав певних дій користувача, які мені не цікавлять.

Те, що я хочу, - це те, що моя програма Facebook має повну авторизацію та access_token для передачі даних з цієї однієї сторінки Facebook, якою я володію (адміністратором). Чи можливо це? Я вже спробував багато речей, але, здається, нічого не вийшло.

Я спробував натиснути на це: https://www.facebook.com/dialog/oauth?client_id=150635421702954&redirect_uri=http://MY_URL/&scope=manage_pages&response_type=token&fields=access_token - змінивши MY_URL на мій сайт, і він вимагає авторизації редагування кожного сторінка, якою я володію. Навіть не те, що я хочу, я натиснув, але не мав доступу_токен натомість ...


Щоб отримати події, я це роблю зараз (термін дії access_token закінчується дуже багато): 1 - Отримайте маркер із Graph Explorer 2 - Вставте його в мій код нижче: var authToken = 'THE_CODE_I_GOT'; var feedQuery = 'graph.facebook.com/MY_PAGE_ID/feed'; var feedURL = feedQuery +'?access_token='+ authToken +'&callback=?'; $.getJSON(feedURL,function(data){ var d = data.data; для (i = 0; i <d.length; i ++) {d [i] .повідомлення? $ ("# список"). append ('<li>' + d [i] .message + '</li>'): ''; // багато іншого, ти його отримав}}); `
відзначає

1
Ви можете отримати постійний маркер: stackoverflow.com/questions/17197970/…
Josh

Відповіді:


269
  1. Перейдіть до Провідника API API
  2. Виберіть додаток зі спадного меню
  3. Натисніть "Отримати маркер доступу"
  4. Виберіть manage_pagesдозвіл (вам може знадобитися і user_eventsдозвіл, не впевнений)
  5. Тепер me/accountsперейдіть до з'єднання та скопіюйте сторінкуaccess_token
  6. Клацніть ідентифікатор вашої сторінки
  7. Додайте сторінку access_tokenдо полів GET
  8. Виклик з'єднання ви хочете (наприклад: PAGE_ID/events)

1
Роблячи це, я можу викликати з'єднання на всіх своїх сторінках, використовуючи маркер сторінки лише однієї з них. Хіба це не так? Чи є спосіб отримати маркер лише для однієї конкретної сторінки, яка не працює на інших сторінках?
andresp

112
Я піднімаюся в гори і плаваю океани просто шукаю цієї відповіді. Дякую.
ІМБ

15
Цей процес більше не працює, оскільки згенерований маркер доступу закінчується, коли ви виходите з будь-якої причини.
coneybeare

1
@coneybeare, зверніться до цього документа про те, як розширити маркер доступу
ifaour

1
Я постійно отримую порожній результат. Чи має значення це, якщо це сторінка програми?
Макс

16

Дивіться тут, якщо ви хочете надати програмі Facebook постійний доступ до сторінки (навіть коли ви / власник програми вийшли з системи):

http://developers.facebook.com/docs/opengraph/using-app-tokens/

"Маркер доступу до додатків не закінчується, якщо ви не оновите секрет програми через налаштування програми."


6
Це не допомагає отримувати події для сторінки з обмеженим доступом.
Сінан

2
Це все-таки правда ?!
jeromej

5

Документацію для цього добре, якщо не трохи складно знайти.

Facebook Graph API - маркер сторінки

Після ініціалізації fbgraph вузла ви можете запустити:

var facebookAccountID = yourAccountIdHere 

graph
.setOptions(options)
.get(facebookAccountId + "/accounts", function(err, res) {
  console.log(res); 
});

і отримаєте відповідь JSON з маркером, який потрібно захопити, який знаходиться за адресою:

res.data[0].access_token
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.