Разместить изображение в альбом на предопределенной странице - PullRequest
4 голосов
/ 24 февраля 2012

Я пытаюсь позволить пользователю опубликовать изображение на моем веб-сайте в альбом на определенной странице facebook. Прежде чем он сможет выбрать изображение на своем компьютере, ему необходимо войти на Facebook и предоставить необходимые права на наше приложение (случайный поток)

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

  1. Перейдите по указанному ниже URL-адресу, вошедшему в систему как администратор страницы, и предоставьте разрешения (user_photos, manage_pages, offline_access, publish_stream)

    https://www.facebook.com/dialog/oauth?
    client_id=<application_id>
    &redirect_uri=<canvas_url>
    &response_type=token
    &scope=user_photos,manage_pages,offline_access,publish_stream
    
  2. Когда вы дадите приложению необходимые разрешения, вы будете перенаправлены на canvas_url # access_token = * access_token *, например

    http://example.com/#access_token=awe12
    
  3. Затем перейдите к

    https://graph.facebook.com/me/accounts?access_token=#access_token
    (using the access token from 2). 
    

    В этом списке перечислены страницы, которые вы администрируете; запишите access_token для страниц, на которые вы хотите загрузить изображение

Теперь, есть ли способ сделать это автоматически? Или лучше, есть ли способ создать токен доступа для этой страницы, который никогда не истечет?

1 Ответ

1 голос
/ 14 апреля 2012

Вам не нужно использовать access_token страницы для публикации в альбоме страницы. Если вы используете access_token страницы, изображение будет отображаться так, как если бы оно было отправлено страницей (а не пользователем).

Пока альбом имеет публичный доступ (означает, что каждый может загружать фотографии в альбомы страницы). Все, что вам нужно, это попросить пользователя предоставить вам publish_stream разрешение и загрузить изображение с его access_token.

Если вы делаете это с PHP Sdk, это должно выглядеть примерно так:

  $facebook->api("ALBUM_ID/photos","POST",array(
        "message"=>"some message",
        "source"=>"@PATH_TO_IMAGE"
  ));

Конечно, вам нужно будет включить imageUpload в объекте $facebook и передать сценарию signed_request или установить access_token, чтобы SDK мог использовать токен доступа текущего пользователя.

...