2016-07-26 6 views
0

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

В моем коде используется библиотека изображений PHP GD, чтобы вытащить статистику, создать образ и сохранить файл на сервере. Я также создал задание cron, чтобы очистить папку изображений каждый день, поскольку я намерен использовать изображения только тогда, когда их нужно просмотреть, так как открытие электронной почты снова создаст изображение.

Я понимаю, что я могу отправить изображение, сгенерированное PHP, на URL-адрес Sharer Facebook ниже.

http://facebook.com/sharer/sharer.php?u=http://example.com/image.png 

Проблема Я бегу в том, что это разделяет URL изображения, а не загружать само изображение на Facebook. Поскольку сервер ежедневно стирается, URL-адрес не существует последовательно и будет недоступен на следующий день после его совместного использования.

Я вижу, что есть варианты, такие как использование Graph API via a url, но я не уверен, что это можно настроить только по электронной почте. Мой почтовый клиент, по-видимому, разрешает использование HTML, поэтому я ограничен в вариантах, которые я могу использовать. Также, как представляется, требуются разрешения пользователей, которые могут попросить кого-нибудь загрузить одно изображение.

Каков наилучший способ разрешить пользователям загружать изображения с их электронной почты на Facebook для совместного использования?

+0

Если вы просто хотите, чтобы пользователи могли делиться без необходимости входа в приложение и предоставления дополнительных разрешений, то самым простым способом было бы позволить им обмениваться ссылками, которые вставляют изображение через метатеги Open Graph , Все это может быть динамическим - сценарий, который выводит метаданные OG, в соответствии с переданным ему параметром GET и созданием образа (пока один и тот же URL-адрес изображения всегда возвращает соответствующее изображение, не имеет значения, он сохраняется на сервере или создается каждый раз на лету.) – CBroe

+0

Изображение создается с помощью случайного URL-адреса электронной почты, поэтому нет возможности рассказать, что это будет заблаговременно. Я могу отправить созданное изображение сценарию для генерации метаданных OG и использовать его для начальной загрузки в facebook, но не будет ли изображение больше не работать после его удаления? Например, если они вернутся на следующий день, у используемого изображения больше нет URL-адреса, указывающего на что-либо. Удерживает ли Facebook кеширование изображений, чтобы это не происходило, или оно принимает изображение и загружает его, чтобы оно всегда выглядело одинаково независимо от того, существует ли оно еще? – cul8r

+0

В какой-то момент вы должны создать URL-адрес изображения, нет? Письма не волшебным образом меняют свой контент сами по себе. И какое это имеет значение, если он удален - как вы сказали, просмотр его по почте создает его снова, нет? // Facebook создает копию изображения на своем CDN; но они будут повторно очищать каждый объект регулярно, и если ваше изображение «отсутствует», когда это произойдет, нет никаких указаний FB. – CBroe

ответ

1

Это будет правильный способ загрузить фотографии в профиле: https://developers.facebook.com/docs/graph-api/reference/user/photos/#Creating

Конечно, вы должны разрешить пользователю publish_actions для этого.

+0

Можно ли использовать это, не зная user_id профиля? – cul8r

+0

не уверен, что вы имеете в виду, вы ДОЛЖНЫ авторизовать пользователя с публикацией для этого. идентификатор пользователя не имеет значения, вы можете использовать конечную точку/me/photos для публикации фотографий. но вы можете легко получить идентификатор пользователя после авторизации в любом случае, если хотите. – luschn

+0

Хорошо, поэтому я вижу, что URL-адрес, который мне нужен для моего HTTP-запроса, будет выглядеть примерно так: https://graph.facebook.com/me/photos?url=URL&access_token=TOKEN. Как мне настроить запрос POST, можно ли отправить это через URL-адрес? – cul8r

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