2015-11-29 8 views
1

Я хочу публиковать фиды на странице Facebook по API. Я выполнил приложение для создания документации для facebook в разработчике facebook. Прежде чем я зарегистрировал учетную запись (например: test_account), и после этого я создал страницу для бизнес-активности (пример: test_page), где администратор admin является «test_account». я пошел к API с помощью Graph API Explorer,API facebook не публикует фид на странице

https://developers.facebook.com/tools/explorer

Я предоставивший на «publish_actions» и доставлен маркером доступа, генерируемый интерфейс инструмента, а затем изображение

enter image description here

После этого я попробовал запрос POST для проверки публикации каналов на странице facebook (Test_page) по

https://graph.facebook.com/ {id_page_business}/сообщение = test_message кормить? & access_token = {access_token_APP}

и я получил новый ID_feed, и я видел фид на facebook странице и OK , но токен доступа на следующий день был истек. Как я могу получить токен доступа, который не истек? Я попробовал другое решение, чтобы получить маркер доступа из запроса вызова GET (как документация)

(ШАГ 1) enter image description here

так я получил маркер доступа, связанного с APP (смотрите ниже)

access_token = {APP_ID} | xxxxxxxxxxxxxxxxxxxxxjw

(ШАГ 2) Я отослано запрос GET вызов

https://graph.facebook.com/ {APP_ID}/счета access_token = APP_ID} | xxxxxxxxxxxxxxxxxxxxxjw

и я получил последовавший ответ:

{ 
    data: [1] 
     0: { 
      id: "xxxxxxxx" 
      login_url: "https://developers.facebook.com/checkpoint/test-user-login /132173517148280/" 
      access_token: "123456........" 
} 

paging: { 
cursors: { 
before: "yMTczNTE3MTQ4Mjgw" 
after: "yMTczNTE3MTQ4Mjgw" 
} 
} 
} 

(ШАГ 3) Таким образом, я попробовал POST вызова запросить опубликовать фид на странице facebook с последним токеном доступа (123456 ........) и я получил

{ 
id: "1256xxxxxx_133346xxxxxx" 
} 

но на странице бизнеса я не вижу фида ... ПОЧЕМУ? ВАЖНО: Я заметил, что я вызываю запрос GET API для получения всех страниц каналов (https://graph.facebook.com/ID_PAGE/feed?access_token=CAAPG1DFdxrs...........) Я могу видеть публикации, опубликованные, но на временной шкале интерфейса facebook я не вижу фид. я заметил, что подача публиковать по возвращению API:

message: "test" 
created_time: "2015-11-29T16:39:44+0000" 
id: "APP_ID_138999329797136" 

Вторая часть ид отличается уважением, когда я публикую канал с доступом лексемы получить от Graph API.

ответ

0

Для размещения на странице необходимо иметь расширенный токен на токене доступа к странице. Маркер доступа к приложениям предоставит вам доступ к чтению на странице, но не позволит вам публиковать сообщения.

Ниже шаги должны помочь -

  1. Получить маркер доступа к странице с помощью -

    https://graph.facebook.com/ {APP_ID}/счета access_token = {APP_ID} | ХХХХХХХХХХХХ

  2. ? Использование токена доступа к странице получает расширенный токен, ниже приведено то, как я реализовал с помощью VB.NET

    Dim параметры как объект = Новый ExpandoObject()
    parameters.client_id = FB_APP_ID
    parameters.client_secret = FB_APP_SECRET
    parameters.grant_type = "fb_exchange_token"
    parameters.fb_exchange_token = short_token «FBClient.AccessToken
    дим результат As Object = FBClient.Get ("OAuth/access_token", параметры)

Использовать этот расширенный токен для публикации на странице. Это сработало для меня, надеюсь, это поможет вам.

+0

Расширенный токен действителен в течение 60 дней, но как обновить токен через 60 дней без входа? потому что у меня есть серверная сторона cron, которая активирует рабочий процесс, чтобы публиковать все фиды на бизнес-странице facebook с помощью APP, у меня нет интерфейса в интерфейсе. Странная вещь, которую я не понимаю, заключается в том, что я выполнил запрос на вызовы процедур, который я описал выше, и опубликовал фид, но строка get кажется старой и поэтому я не вижу в бизнесе страниц facebook. Вместо этого, если вы вызываете фид API GET, я могу видеть отправленный канал. ЗАЧЕМ? – Stefano

0

Попробуйте выбрать все эти разрешения user_status, publish_actions, manage_pages, publish_pages и попытаться отправить сообщение.

+0

У меня уже есть разрешения, которые вы сказали. Я хотел бы знать, требуется ли сделать логин, чтобы получить токен доступа APP, действительный для публикации фидов в бизнесе страниц, или мой рабочий процесс, который я использовал, является правильным. Потому что я хотел бы публиковать автоматические каналы с API facebook в PHP-коде. – Stefano

+1

https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens Чтобы получить токен доступа к более долговечному доступу, обменивайте токен доступа пользователя на долгоживущий, как указано выше, а затем запросите токен доступа к странице. Результирующий токен доступа к странице не будет иметь никакого срока действия. https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension#long-via-code –