2 Stimmen

Upload Foto auf Freund/Fan Seite mit Android

Ich möchte ein Foto von meiner Android-App auf eine Facebook-Fanseite hochladen, indem ich die Facebook-API verwende.

Wenn ich mir die Hackbook-Android-Beispiel-App anschaue (link), sieht der Code zum Hochladen eines Fotos folgendermaßen aus:

Bundle params = new params.putString("url",
"http://www.facebook.com/images/devsite/iphone_connect_btn.jpg");                            params.putString("caption",
    "FbAPIs Sample App photo upload");

Utility.mAsyncRunner.request("me/photos", params,
    "POST", new PhotoUploadListener(), null);

Dieser Code funktioniert, er veröffentlicht das Foto auf meiner eigenen Facebook-Seite. Aber ich möchte nicht, dass das Foto auf meiner Seite, sondern auf einer Fanseite veröffentlicht wird.

Wie in der Facebook-Dokumentation erklärt, könnte 'me' durch eine Facebook-Benutzer-ID ersetzt werden. Ich habe versucht, "me/photo" in "[fanpagename]/photo" oder "[fanpageID]/photo" zu ändern, aber das hat nicht funktioniert. Als ich den Benutzernamen verwendete, erhielt ich einen Fehler, als ich die ID benutzte, wurde das Foto auf meiner eigenen Seite veröffentlicht. In der GraphAPI-Fotodokumentation (link) wird kein Beispiel oder Erklärung dafür gegeben, wie man ein Foto auf einer Fanseite hochlädt.

auch die

params.putString("to", [fbid]);

funktioniert nicht.

Irgendwelche Vorschläge?

2voto

EvertvdBraak Punkte 893

Ich habe mich drei volle Tage lang mit dieser Forschung beschäftigt und konnte keine Antwort auf mein Problem finden. Aber ich denke, ich habe eine Erklärung dafür.

Wenn ein Benutzer ein Foto mit der offiziellen Android-FB-App auf einer Freund/Fan-Seite veröffentlicht, wird ein "Feed" mit einem Bild (URL-Link) verwendet. Der Benutzer kann nicht auf seiner eigenen Pinnwand sehen, dass er tatsächlich ein Bild auf der Freund/Fan-Seite geteilt oder gepostet hat. (zum Beispiel: "Bob - hat ein Foto auf CocaCola gepostet")

Dies ist wahrscheinlich der Grund, warum die Funktion deaktiviert ist, denn Entwickler könnten dies nutzen, um Fotos an alle Arten von Freunden/Fan-Seiten zu senden, ohne dass der Benutzer davon weiß.

Ich bin zu dieser Hypothese gekommen, weil ich eine Art Workaround gefunden habe. Zuerst das Foto in das eigene Album des Benutzers hochladen. Die URL des Fotos abrufen und dann einen "Feed" auf der Freund/Fan-Seite mit einem Bild (URL-Link) posten. Facebook gab dann diesen Fehler aus: "FBCDN-Bild ist nicht im Stream erlaubt", mit anderen Worten, man kann keine Fotos verwenden, die sich auf der FB-Website-Domain befinden. Ich denke also, es gibt ziemliche Fehler/Faulheit im Facebook-Entwicklungsbereich :P, was schade ist, denn es ist eine schöne Social-Networking-Funktion für mobile Apps.

1voto

thaddeusmt Punkte 15050

Du bist auf dem richtigen Weg, aber um Fotos auf einer Seite zu veröffentlichen, benötigst du die Berechtigungen publish_stream und manage_pages, sowie den Seitenzugriffstoken, um zu beweisen, dass du diese hast. Mehr dazu findest du hier:

  1. http://developers.facebook.com/docs/reference/api/page/#photos
  2. http://developers.facebook.com/docs/reference/api/page/#page_access_tokens

Einige Beispielcodes (Verwendung des PHP SDKs, aber die Logik sollte in jeder Sprache gleich sein) findest du hier: https://stackoverflow.com/a/7222078/164439

Update:

Wenn du auf die Wall/Feed der Seite posten möchtest (ohne Administrator der Seite zu sein), kannst du dies ohne die Berechtigung Manage Pages und ohne den Zugriffstoken machen.

Das ist jedoch etwas anderes als das Veröffentlichen eines Fotoobjekts in der Fotos-Sammlung der Seite, was ich dachte, dass du gefragt hast. Du möchtest tatsächlich einen regulären Beitrag auf der Seite mit einem Bildanhang machen.

Hier sind einige Ressourcen dazu:

  1. Facebook Post API: http://developers.facebook.com/docs/reference/api/post/
  2. http://facebook.stackoverflow.com/questions/691425/how-do-you-post-to-the-wall-on-a-facebook-page-not-profile
  3. http://facebook.stackoverflow.com/questions/5756474/post-to-facebook-page-wall
  4. Using Facebook Graph to simply post a wall message with just javascript

Viel Glück!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X