1

Ich benutze GraphRequest von react-native-fbsdk, um auf FB von meiner App aus zu posten. Genauer gesagt versuche ich, einen Link zu einem mp4-Video zu posten, das extern gehostet wird, also an einer URL wie https://img.myapp.com/image_id.mp4. Hier ist der Code für meine Anfrage:Veröffentlichung von mp4 zu Facebook mit GraphRequest in React Native

return new Promise(function(resolve, reject) { 
    const post = new GraphRequest('/me/feed', { 
    httpMethod: 'GET', 
    version: 'v2.9', 
    ...payload, 
    }, (err, result) => { 
    if (err) { 
     reject(err); 
    } 
    resolve(); 
    }); 

    new GraphRequestManager().addRequest(post).start(); 
}); 

Und hier ist die payload:

{ 
    httpMethod: 'POST', 
    parameters: { 
     type: { string: 'article' }, 
     message: { string: message || '' }, 
     caption: { string: 'Powered by MyApp' }, 
     link: { string: media.url }, 
     ref: { string: uuid }, 
     picture: { string: media.url }, 
     source: { string: media.url }, 
     properties: [ 
     { name: { string: 'type' }, text: { string: 'video.other' } }, 
     ], 
    } 

Mein Kernproblem ist, dass ich einen mp4 Link auf FB zu stellen und die Videoschleife sehen (wie es ist nur ein paar Sekunden lang). Ich bin mir ziemlich sicher, dass diese properties Eigenschaft ist, wo ich Typ, Höhe, Breite und andere Eigenschaften angeben sollte, die ich ein Meta-Tag für anderswo hinzufügen würde, um Informationen über das Video in dem Link weiterzugeben. Allerdings mit properties geschrieben, wie ich es habe ich diesen Fehler: graph api Error: Unexpected value for parameter 'properties'. Request parameters need to be objects with a 'string' field.

Hier ein Screenshot des properties Block in der Graph-API - Postdocs (https://developers.facebook.com/docs/graph-api/reference/v2.11/post): enter image description here

ich versucht habe, so viele verschiedene Konfigurationen für dieses Objekt (oder Array?) wie ich mir vorstellen kann und sie alle diesen Fehler zurückgeben. Gibt es jemanden da draußen, der mit der Veröffentlichung eines mp4-Videos mit GraphRequest vertraut ist, oder kann er mir zumindest mitteilen, wie man den Parameter properties verwendet? Danke im Voraus!

Antwort

1

Damit das MP4 als inline-spielbares Video angezeigt wird (und für diejenigen, die es aktiviert haben, automatische Wiedergabe im Nachrichten-Feed), müssen Sie das Video hochladen, bevor Sie es veröffentlichen.

Da Sie das Veröffentlichen von einem externen Link erwähnt haben, können Sie die URL nur an die Videodatei senden, wenn Sie mindestens Version 2.3 der Graph-API verwenden, anstatt die Rohdaten hochzuladen. Eine Einschränkung, auf die Sie achten sollten, ist, dass das Video unter der von Ihnen angegebenen URL innerhalb von 5 Minuten per Facebook Scraper heruntergeladen werden kann. Wenn Sie ein großes Video oder einen langsamen Server haben, verwenden Sie besser den Chunked-Upload-Prozess.

Hier einige weitere Informationen über den Video-Upload-Prozess: https://developers.facebook.com/docs/graph-api/video-uploads

Sie Um zu beginnen, stellen Sie sicher, lieber den /videos Endpunkt zu verwenden, als /feed:

new GraphRequest('/me/videos' 

Die Parameter, die Sie verwenden werden, sind ein Bit anders als der /feed Endpunkt und kann hier referenziert werden: https://developers.facebook.com/docs/graph-api/reference/video#Creating

Sie möchten speziell auf dieaussehenParameter, mit dem Sie die URL an Ihre Videodatei senden, und den Parameter is_explicit_share, wenn das Video automatisch im Newsfeed des Benutzers veröffentlicht werden soll. Sie können description anstelle von message verwenden und der Text, den Sie bereitstellen, wird auf der Pinnwand angezeigt. Setzen Sie alles zusammen mit Ihrem ursprünglichen Code:

httpMethod: 'POST', 
parameters: { 
    file_url: { string: media.url }, 
    description: { string: message || '' }, 
    is_explicit_share: { string: 'true' }, 
    ... 
} 
Verwandte Themen