it-swarm.com.de

wie man eine Facebook-Nachricht über graph api mit Accessstoken versendet

Kann mir jemand helfen, eine Nachricht an Facebook-Freunde mit graph api zu senden.

Ich habe es versucht

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

Es funktioniert nicht. Ich habe den Zugang des Benutzers in meiner Hand. Ich bin nur verwirrt über den Sendevorgang.

41
JAMES

Sie können keine Nachrichten mit einer Facebook-Anwendung senden. Früher war das möglich, aber das (vorhersehbare?) Ausmaß des Missbrauchs führte zum Widerruf dieser Fähigkeit.

Vorausgesetzt, Alice, Ihr Benutzer, hat Ihnen die erforderlichen erweiterten Berechtigungen gegeben, haben Sie die folgenden Optionen:

  • Poste in ihrem Namen an Alices Wand
  • E-Mail an Alice senden
  • Erstelle Events im Auftrag von Alice
    • laden Sie Bob (nicht Ihren Benutzer) zu diesen Ereignissen ein
  • Stellen Sie im Namen von Alice eine Anfrage/Einladung an Bob
  • Senden Sie eine Anfrage von der App an Alice
51
Júlio Santos

Sie können das Sendedialog in einem Popup öffnen.

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

Detaillierte Optionen finden Sie unter: 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

Technisch gesehen können Sie Feed- oder Cross-Feed-Posts mit Datenschutzeinstellungen erstellen, bei denen nur der Feed-Eigentümer den Post sehen kann, aber nicht wirklich eine Nachricht an eine Person sendet.

4
user545351

Sie können an ihre Facebook-E-Mail senden. Facebook-E-Mail besteht aus dem Profil Spitzname+'@facebook.com '. Die E-Mail wird an ihre Facebook-Inbox-Nachricht weitergeleitet. Beachten Sie, dass Facebook-E-Mail keine Spoofing-E-Mails akzeptiert. Sie benötigen eine Whitelabel-Domain oder verwenden SendGrid.

2
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

Sie müssen xmpp chat integrieren, um eine Nachricht zu beantworten und eine neue Nachricht zu schreiben.

2

Ich habe diesen Beitrag gesehen und festgestellt, dass er nicht richtig war. Mit der javascriot-API können Sie wie folgt in den Feed eines Freundes posten: In diesem Beispiel ist "friendID" die FB-Benutzer-ID des Freundes. Dieser API-Aufruf erfordert die Berechtigung "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);
              }
        });

Das macht man also mit dem javasfcript SDK - die PHP Methode muss ähnlich sein.

0

Anstatt den folgenden Code zu verwenden

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

Verwenden Sie die folgende Lösung

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