Прямое сообщение Graph API для страницы: как получить ссылку на прикрепленный файл

Мне нужно сохранить ссылку на файл, прикрепленный к прямому сообщению (для страницы, полученной с помощью «/conversations»). Как я могу это сделать?

Я знаю, как получить ссылку на изображение. JSON-объект для изображения ("attachments") содержит тег "image_data", который содержит теги "url" и "preview_url" для доступа к изображению.

Для вложенных файлов (в моем случае, например, PDF) FB отправляет только «id», «mime_type», «name» и «size», но никаких дополнительных данных. Пример:

"id": "m_id.158623824339344"
 ....
"attachments": {
    "data": [
     {
        "id": "7b84fd4c0f18fb4060ae0fe0dcfeb42e",
        "mime_type": "application/pdf",
        "name": "Attachment1.pdf",
        "size": 80798
      }
    ]
 }

Но когда я захожу в FB как пользователь и нажимаю на вложение в браузере, я получаю эту ссылку:

https://www.facebook.com/ajax/messaging/attachment.php?attach_id=<attach_id>&mid=id.<mid>&pageid=<pageid>&ext=<ext>&hash=AQCafpYeZj2pSjRk

Методом проб и ошибок выяснил, что можно получить доступ к файлу без "hash" и "ext"-части. Это означает, что теоретически я могу сгенерировать эту ссылку в своем приложении ("attach_id" и "mid" предоставляются вместе с сообщением, и я знаю свой идентификатор страницы).

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

Я много искал, но не смог найти никакой документации об этом. Кто-нибудь знает лучшее решение? Или может кто-нибудь указать мне на какую-то документацию по этой проблеме?

Большое спасибо!

Барбара


person user2458859    schedule 04.09.2013    source источник
comment
Я сделал то же самое. Похоже, что Facebook возвращает пустую страницу, когда вы пытаетесь получить доступ к вложению, не входя в систему. Так что это по крайней мере один вариант использования, в котором это не удается.   -  person dirkbonhomme    schedule 04.02.2014


Ответы (1)


К сожалению, это недоступно начиная с версии 2.5.

Если в будущем это станет новой функцией, вы сможете найти ее в документации: https://developers.intern.facebook.com/docs/graph-api/reference/v2.5/сообщение/вложения

person Xiao    schedule 07.01.2016