2015-02-26 18 views
11

Una richiesta API batch di Facebook consente al chiamante di specificare più endpoint API in un singolo POST HTTP.Come specificare la versione dell'API in una richiesta dell'API batch di Facebook?

Il post viene creato su un URL di base: https://graph.facebook.com.

Il corpo del post contiene un hash JSON con relativi URL per chiamare il campo "relativa_url", ad es. "Mi/mangimi".

Come specificare una versione API in questa chiamata?

Ad esempio, per raggiungere la versione 2.2 dell'API, è possibile inviare a https://graph.facebook.com/v2.2/ o specificare "v2.2/me/feed" in relativa_url?

Dal Feb 26, 2015 la documentazione delle API di Facebook non è chiaro su questo punto: https://developers.facebook.com/docs/graph-api/making-multiple-requests

+0

La risposta qui sotto per Slartibartfast sembra essere corretto, ma per i post futuri; per favore nota quello che hai già provato. Hai provato entrambi i metodi di creazione di una richiesta batch e hai ottenuto risultati? – Roemer

risposta

10

Probabilmente mettere nel relativo URL. Ecco un example dalla commercializzazione dei lotti documentazione API

curl -F 'access_token=______' 
    -F '[email protected]/test1.jpg' 
    -F 'batch=[ 
      { 
       "method": "POST", 
       "name": "create_creative", 
       "relative_url": "<API_VERSION>/act_187687683/adcreatives", 
       "attached_files": "test1", 
       "body": "title=Test title&body=Test body&link_url=http://www.test12345.com&image_file=test1.jpg" 
      }, 
      { 
       "method": "POST", 
       "relative_url": "<API_VERSION>/act_187687683/adgroups", 
       "body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test1" 
      }, 
      { 
       "method": "POST", 
       "relative_url": "<API_VERSION>/act_187687683/adgroups", 
       "body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"GB\"]}&name=test2" 
      }, 
      { 
       "method": "POST", 
       "relative_url": "<API_VERSION>/act_187687683/adgroups", 
       "body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"IE\"]}&name=test3" 
      } 
      ]' https://graph.facebook.com/ 

Sto assumendo questo è comune ad altre richieste pure.

Diverse altre fonti per la lettura

1.) Dal here

pre-pend l'identificativo della versione per l'inizio del percorso di richiesta. Ad esempio, ecco una chiamata alla v2.2:

GET graph.facebook.com 
    /v2.2/me 

Questo funziona per tutte le versioni, in questa forma generale:

GET graph.facebook.com 
    /vX.Y/{request-path} 

2.) Mettere l'url sembra essere per Dialogs and Social plugins

Finestre

percorsi con versione non sono solo veri per gli endpoint API, sono anche veri per le finestre di dialogo e i social plugin. Per esempio, se si desidera generare la finestra di Facebook Login per una web app, è possibile anteporre una versione numero al punto finale che genera la finestra di dialogo:

https://www.facebook.com/v2.0/dialog/oauth? 
    client_id={app-id} 
    &redirect_uri={redirect-uri} 

Social Plugin

Se sei utilizzando le versioni HTML5 o xfbml dei nostri social plugin, la versione renderizzata sarà determinata dalla versione specificata quando stai iniziando l'SDK JavaScript.

Se si sta inserendo una versione iframe o un link piana di uno dei nostri plugin, che ci si premettere al numero di versione per il percorso di origine del plugin :

<iframe 
src="//www.facebook.com/v2.0/plugins/like.php?href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&amp;width&amp;layout=standard&amp;action=like&amp;show_faces=true&amp;share=true&amp;height=80&amp;appId=634262946633418" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:80px;" allowTransparency="true"> </iframe> 
+0

Quello che voglio veramente è che qualcuno da * Facebook * ci dia la risposta approvata da Facebook, quindi aggiorna i documenti autorevoli. Al posto di quello, penso che tu abbia ragione. –

+0

Bene @Flaxfield che ha commentato la tua domanda sembra essere un ingegnere di sviluppo su Facebook (dal suo profilo) quindi suppongo che questo sia il più vicino su SO :) – Slartibartfast

+0

Ha ragione! Eppure, mi sta chiedendo? –

Problemi correlati