Как отправить сообщение фейсбуку другу через graph api используя Accessstoken

Может ли кто-нибудь помочь мне отправить сообщение друзьям в Facebook, используя график API.

Я старался

$response = $facebook->call_api("/me/feed", "post", "to=john","message=You have a Test message");

Это не работает. У меня в руке есть маркер доступа пользователя. Только я запутался в процессе отправки.

11 ответов

Вы не можете отправлять сообщения с помощью приложения Facebook. Раньше вы могли это делать, но (предсказуемое?) Колоссальное количество злоупотреблений привело к отзыву этой способности.

Если Алиса, ваш пользователь, предоставила вам необходимые расширенные разрешения, у вас есть следующие возможности:

  • Опубликовать на стене Алисы от ее имени
  • Отправить письмо Алисе
  • Создавайте события от имени Алисы
    • пригласить Боба (не вашего пользователя) на указанные события
  • Оформить запрос / приглашение от имени Алисы Бобу
  • Оформите запрос из приложения для Алисы

Вы можете открыть диалоговое окно отправки во всплывающем окне.

 $parameters = array(
    'app_id' => $facebook->getAppId(),
    'to' => $facebookUserId,
    'link' => 'http://google.nl/',
    'redirect_uri' => 'http://my.app.url/callback'
 );
 $url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
 echo '<script type="text/javascript">window.open('.json_encode($url).', ...

Подробные параметры см. На https://developers.facebook.com/docs/reference/dialogs/send/

Вызвать это событие для отправки сообщения (инициализация объекта facebook должна быть сделана раньше).

to: идентификатор пользователя facebook

function facebook_send_message(to) {
    FB.ui({
        app_id:'xxxxxxxx',
        method: 'send',
        name: "sdfds jj jjjsdj j j ",
        link: 'https://apps.facebook.com/xxxxxxxaxsa',
        to:to,
        description:'sdf sdf sfddsfdd s d  fsf s '

    });
}

свойства

  • app_id
    Идентификатор вашего приложения. Требуется, но автоматически указывается большинством SDK.

  • redirect_uri
    URL-адрес для перенаправления после того, как пользователь нажимает кнопки "Отправить" или "Отмена" в диалоговом окне. Требуется, но автоматически указывается большинством SDK.

  • дисплей
    Режим отображения, в котором отображается диалог. Это автоматически указывается большинством SDK.

  • в
    Идентификатор пользователя или имя пользователя для отправки сообщения. Как только появится диалоговое окно, пользователь может указать дополнительных пользователей, группы Facebook и адреса электронной почты, на которые следует отправить сообщение. При отправке контента в группу в Facebook он будет опубликован на стене группы.

  • ссылка на сайт
    (обязательно) Ссылка для отправки в сообщении.

  • картина
    По умолчанию картинка будет сделана по указанной ссылке. URL-адрес изображения для включения в сообщение. Картинка будет показана рядом с ссылкой.

  • name По умолчанию заголовок будет взят по указанной ссылке. Имя ссылки, т. Е. Текст, отображаемый пользователем.

  • описание
    По умолчанию описание будет взято по указанной ссылке. Описательный текст для показа под ссылкой.

$attachment =  array(

    'access_token' => $access_token,
    'message' => "$msg",
    'name' => "$name",
    'link' => "$link",
    'description' => "$desc",
);

facebook->api('/'.$uesr_id.'/feed', 'POST', $attachment);

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

You can use
HTTP POST with
PATH
https://graph.facebook.com/friend_facebook_id/feed
PARAMETER
MESSAGE = your message
ACCESS_TOKEN = your oauth2 access token

Вы можете отправить их на Facebook по электронной почте. Электронная почта Facebook состоит из профиля никнейм "@facebook.com". Письмо будет отправлено на их входящие сообщения в Facebook. Обратите внимание, что электронная почта Facebook не принимает поддельные сообщения. Вам понадобится домен whitelabel или используйте SendGrid.

Вам нужно будет интегрировать чат xmpp, чтобы ответить на сообщение и написать новое сообщение.

Вместо использования приведенного ниже кода

    [facebook dialog:@"feed"
     andParams:params 
     andDelegate:self]; 

Используйте следующее решение

[facebook requestWithGraphPath:@"me/feed"
   andParams:params
   andHttpMethod:@"POST"
   andDelegate:self];

Я видел этот пост и заметил, что это не правильно. Используя javascriot api, вы можете публиковать в фиде друзей, например, так: В этом примере "friendID" - это идентификатор пользователя FB. Этот вызов API требует разрешения "publish_stream".

FB.api('/'+friendID+'/feed', 'post', 
            {
                method: 'feed',
                message: messageText,
                name: 'write a title here',
                caption: 'Put a caption here.',
                description: 'Put your description here.',
                link: 'http://stackru.com/questions/2943297/how-send-message-facebook-friend-through-graph-api-using-accessstoken',
                picture: 'link to the preview thumbnail',                   
            },
             function(response) {
              if (!response || response.error) {
                //alert('Error occured');
              } else {
                //alert('Post ID: ' + response.id);
              }
        });

Так что это делается с помощью javasfcript SDK- метод PHP должен быть похожим.

Похоже, что вы хотите отправить сообщение прямо в основной почтовый ящик получателя, для этого нет никакого графического API, вам нужно использовать Facebook xmpp chat API и отправить сообщение, однако я создал класс php, который слишком прост чтобы использовать, просто некоторые вызовы функций и вызов функции отправки сообщения, и сообщение будет отправлено, с открытым исходным кодом, проверьте его: facebook сообщение api php описание описывает, что это закрытый источник, но комментарий говорит, что это открытый источник, вы можно клонировать из github. Теперь это открытый исходный код.

Другие вопросы по тегам