2013-02-20 4 views
4

У моей компании есть корпоративная учетная запись facebook, где они размещают фото в разных альбомах. Мое требование - получить все фотографии с альбомов facebook и показать их на нашем корпоративном сайте. Я могу получить фотографии, но токен доступа пользователя действителен только в течение 60 дней, а это означает, что каждые два месяца мне придется заходить в корпоративную учетную запись компании, обновлять токен и обновлять токен в моем приложении.Facebook - как получить постоянный токен доступа пользователя

Есть ли способ генерировать постоянный токен доступа? или любой способ восстановить токен на моем уровне приложения (без отображения диалогового окна входа)?

Есть ли другой способ получить фотографии без создания приложения?

Я выполнил следующие шаги: https://www.facebook.com/dialog/oauth?client_id=%3CCLIENT_ID%3E&scope=manage_pages&redirect_uri= Я получил код из этого вызова API. Затем я получил токен следующим образом: https://graph.facebook.com/oauth/access_token?client_id= & redirect_uri = & client_secret = & code = Я проверил токен, используя Access token Debugger. Токен действует в течение 60 дней. Чтобы получить токен страницы, я использовал url: graph.facebook.com/me/accounts?access_token= Я получил токен для страницы моего приложения. Я проверил этот маркер в инструменте, его действителен только в течение 60 дней

благодаря

ответ

3

Я также хотел получить доступ к данным без создания приложения. Я много пробовал, но в итоге мне пришлось создавать приложение только ради этого. Поэтому вам нужно будет создать приложение.

Кроме того, если вы видите сайт разработчиков, в нем говорится, что они удалили разрешение «offline_access» в декабре 2012 года. См. Здесь: https://developers.facebook.com/roadmap/offline-access-removal/. Так вот, они принесли долгоживущий токен доступа. Они также говорят, и я цитирую: «Если вы хотите обновить все еще действительный долгоживущий access_token, вам сначала нужно будет получить новый краткосрочный пользовательский доступ_трек, а затем вызвать ту же конечную точку ниже».

Итак, вам нужно будет снова получить токен доступа к краткосрочной перспективе и получить долгоживущий токен с помощью короткого токена. Чтобы получить маркер доступа на долгий срок, Вы можете отправить запрос HTTP, как это:

var short_access_token; //Get this 
var xhr = new XMLHttpRequest(); 
var f_url = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=CLIENT_ID&client_secret=APP_CLIENT_SECRET&fb_exchange_token="+short_access_token; 

xhr.open("GET", f_url , true); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
     obj = xhr.responseText; 
     long_token = obj.split('=')[1].split('&')[0]; 
    } 
} 
xhr.send(); 

Надеется, что это помогает

+0

действительно плохую идее, чтобы иметь приложение тайны клиента, как это ... вы, вероятно, собирается делать это со стороны сервера. – mpowered

+0

@mpowered +1. Полностью согласен. Mine была просто демо-приложение на стороне клиента, поэтому у меня не было выбора. –

Смежные вопросы