Как функция обмена в Dropbox позволяет отправлять личные сообщения друзьям в Facebook?

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

https://www.dropbox.com/share

Вам нужно будет войти в систему / создать учетную запись и иметь общую папку, чтобы увидеть ее.

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

До сих пор мне удалось вывести список друзей из Facebook в автозаполнение пользовательского интерфейса jquery, но я не знаю, как теперь отправить личное сообщение выбранному другу, когда у меня есть его идентификатор.

Единственный способ, которым я мог придумать, как это сделать, - это отправить пользователю электронное письмо по адресу [email protected], но я не знаю, как вы прикрепляете изображение, описание, ссылку и т. д., как вы это делаете к обычному сообщению на стене / временной шкале.

Я надеялся, что некоторые из экспертов Facebook могут высказать свои мысли и мнения?


person martincarlin87    schedule 26.04.2012    source источник
comment
Какие разрешения требуются при добавлении приложения? Куда приходят сообщения? Ваш чат всплывает или появляется на верхней иконке сообщений?   -  person Nitzan Tomer    schedule 27.04.2012
comment
Пытаясь вспомнить разрешения (извиняюсь, я с телефона), я могу вспомнить, что одно из них - офлайн-доступ. Сообщение попадает на верхний значок сообщений, в папку «Входящие».   -  person martincarlin87    schedule 27.04.2012


Ответы (2)


Единственный известный мне способ, позволяющий приложению отправлять личные сообщения пользователям, не являющимся пользователями приложения, — это через API чата. Для этого вам нужно запросить «xmpp_login», который:

Предоставляет приложениям, которые интегрируются с чатом Facebook, возможность входа пользователей в систему.

(Справочник по разрешениям)

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

Этот API не является простым, поскольку требует, чтобы ваше приложение имело клиент xmpp. Есть несколько клиентских реализаций (flash и даже js-клиенты), но у меня нет с этим опыта, с другой стороны, я могу скажу вам по опыту, что управление xmpp для каждого вошедшего в систему клиента может быть сложным, поэтому старайтесь избегать этого, если вам это действительно не нужно.

Вы можете удалить приложение, которое у вас есть для дропбокса в facebook, а затем добавить его снова, тогда вы увидите, какие есть разрешения, и посмотрите, действительно ли они запрашивают разрешение «xmpp_login», если нет, пожалуйста, дайте мне знать, что они запрашивают. .


Редактировать

Вы меня заинтриговали, поэтому я попробовал это сам, и вы правы, они не запрашивают разрешение «xmpp_login», только «offline_access» и «publish_stream».

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

Если я прав насчет этого, для вас есть два варианта: использовать диалог отправки или использовать чат апи.

person Nitzan Tomer    schedule 26.04.2012
comment
Спасибо за ответ, посмотрю. Не уверен, что это то, что делает Dropbox, это действительно поставило меня в тупик, как они могут это сделать. - person martincarlin87; 27.04.2012
comment
Еще раз спасибо, очень признателен. Я думаю, что вы можете быть правы насчет особых привилегий, потому что я не думаю, что это возможно без использования диалога отправки, особенно когда речь идет о личных сообщениях, хотя это позор, я действительно надеялся, что смогу создать почти идентичное приложение для обмена. Молодец Dropbox, никогда не видел ничего подобного! - person martincarlin87; 27.04.2012
comment
Если это так важно для вас, просто попросите разрешения на чат и используйте их. Это можно сделать, мы делаем что-то очень похожее, используя API чата. - person Nitzan Tomer; 27.04.2012

В Dropbox они отправляют электронное письмо конкретному пользователю с его адресом электронной почты facebook (например, имя пользователя@facebook.com).

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

«Ваша электронная почта Facebook основана на общедоступном имени пользователя. Электронная почта, отправленная на этот адрес, попадает в сообщения Facebook».

Вам просто нужно получить идентификатор электронной почты пользователя и имя пользователя его друга....

и вы также можете отправлять вложения вместе с ним .... !!

person Ajay    schedule 26.07.2013
comment
Только что увидел, что это поведение изменится, и сообщения будут отправляться на основной адрес электронной почты пользователя вместо сообщений: facebook .com/help/703286543026907 - person robertwbradford; 01.03.2014