web-dev-qa-db-fra.com

comment envoyer un message ami facebook via l'API graphique en utilisant Accessstoken

Quelqu'un peut-il m'aider à envoyer un message à des amis Facebook à l'aide de l'API graphique.

J'ai essayé

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

Ça ne fonctionne pas. J'ai les accès de l'utilisateur dans ma main. Seulement je suis confus sur le processus d'envoi.

41
JAMES

Vous ne pouvez pas envoyer de messages à l'aide d'une application Facebook. Vous pouviez le faire auparavant, mais la quantité colossale (prévisible?) D'abus a conduit à la révocation de cette capacité.

Pourvu qu'Alice, votre utilisateur, vous ait donné le nécessaire autorisations étendues , vous avez les options suivantes:

  • Poster sur le mur d'Alice en son nom
  • Envoyer un e-mail à Alice
  • Créez des événements au nom d'Alice
    • inviter Bob (pas votre utilisateur) auxdits événements
  • Émettre une demande/invitation au nom d'Alice à Bob
  • Émettre une demande de l'application à Alice
51
Júlio Santos

Vous pouvez ouvrir la boîte de dialogue d'envoi dans une fenêtre contextuelle.

 $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).', ...

Pour des options détaillées, voir: https://developers.facebook.com/docs/reference/dialogs/send/

29
Bob Fanger
$attachment =  array(

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

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

Techniquement, vous pouvez faire un post ou un flux croisé avec des paramètres de confidentialité qui permettent uniquement au propriétaire du flux de voir le post, mais ce n'est pas vraiment d'envoyer un message à une personne.

4
user545351

Vous pouvez envoyer à leur e-mail facebook. L'e-mail Facebook consiste en un pseudo de profil+'@facebook.com '. L'e-mail sera envoyé à leur message de boîte de réception Facebook. Notez que l'e-mail facebook n'accepte pas les e-mails d'usurpation. Vous aurez besoin d'un domaine en marque blanche ou utilisez SendGrid.

2
sulaiman sudirman
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
2
gkrdvl

Vous devrez intégrer le chat xmpp pour répondre à un message et écrire un nouveau message.

2
Umangshu Chouhan

J'ai vu ce post et j'ai remarqué que ce n'était pas bien. En utilisant l'API javascriot, vous pouvez publier dans le flux d'un ami comme ceci: Dans cet exemple, "friendID" est l'ID utilisateur FB de l'ami. Cet appel api nécessite l'autorisation "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://stackoverflow.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);
              }
        });

Donc, cela se fait avec le SDK javasfcript - la méthode PHP doit être similaire.

0
Plastic Sturgeon

Au lieu d'utiliser le code ci-dessous

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

Utilisez la solution suivante

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