2013-09-04 3 views
5

Ich muss den Link zu einer Datei mit einer direkten Nachricht (für eine Seite, abgerufen mit "/conversations") speichern. Wie kann ich das machen?Graph API direkte Nachricht für die Seite: wie Link zu angehängter Datei abrufen

Ich weiß, wie man die Verbindung eines Bildes bekommt. Das JSON-Objekt für ein Bild ("attachments") enthält das Tag "image_data", welches die Variablen "url" und "preview_url" für den Zugriff auf das Bild enthält.

Für angebracht Dateien (in meinem Fall zum Beispiel eines PDF), FB sendet nur "id", "mime_type", "name" und "size", aber keine zusätzlichen Daten. Beispiel:

"id": "m_id.158623824339344" 
.... 
"attachments": { 
    "data": [ 
    { 
     "id": "7b84fd4c0f18fb4060ae0fe0dcfeb42e", 
     "mime_type": "application/pdf", 
     "name": "Attachment1.pdf", 
     "size": 80798 
     } 
    ] 
} 

Aber wenn ich in FB einloggen als Benutzer und klicken Sie auf die Anlage im Browser, erhalte ich diesen Link:

https://www.facebook.com/ajax/messaging/attachment.php?attach_id=<attach_id>&mid=id.<mid>&pageid=<pageid>&ext=<ext>&hash=AQCafpYeZj2pSjRk 

durch Versuch und Irrtum fand ich heraus, dass es möglich ist, Greifen Sie auf die Datei ohne den "hash" und "ext" -Teil zu. Dies bedeutet, dass ich in der Lage bin, diesen Link in meiner Anwendung zu generieren ("attach_id" und "mid" sind mit der Nachricht zur Verfügung gestellt und ich kenne meine Seite id).

Aber das scheint sehr unzuverlässig zu sein. Dieser Link kann sich jederzeit ändern und meine Bewerbung brechen.

Ich suchte viel, konnte aber keine Dokumentation darüber finden. Kennt jemand eine bessere Lösung? Oder kann mich jemand auf eine Dokumentation zu diesem Thema hinweisen?

Vielen Dank!

Barbara

+0

Ich habe genau die gleiche Sache. Scheint, dass Facebook eine leere Seite zurückgibt, wenn Sie versuchen, auf einen Anhang zuzugreifen, wenn nicht angemeldet ist. Das ist also mindestens ein Anwendungsfall, in dem das fehlschlägt. – dirkbonhomme

Antwort