Mi sembra che l'API explorer al momento non funzioni con lo scrivere attività app su Google perché non passa il campo requestvisibleactions al flusso OAUTH2. Puoi ancora fare le cose manualmente come descriverò qui sotto.
ci sono due cose che dovete fare:
In primo luogo, garantire che si sta rendendo il tasto di accesso con requestvisibleactions fissati per i tipi di attività app si sta inserendo. L'esempio seguente mostra come si renda segno-in con l'attività aggiuntivo:
<div id="gConnect">
<button class="g-signin"
data-scope="https://www.googleapis.com/auth/plus.login"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-clientId="YOUR_CLIENT_ID"
data-callback="onSignInCallback"
data-theme="dark"
data-cookiepolicy="single_host_origin">
</button>
</div>
successivo, è necessario costruire e scrivere l'attività app. L'esempio seguente mostra questo utilizzando JavaScript:
var payload = {
"target": {
"id" : "replacewithuniqueidforaddtarget",
"image" : "http:\/\/www.google.com\/s2\/static\/images\/GoogleyEyes.png",
"type" : "http:\/\/schema.org\/CreativeWork",
"description" : "The description for the activity",
"name":"An example of AddActivity"
},
"type":"http:\/\/schemas.google.com\/AddActivity",
"startDate": "2012-10-31T23:59:59.999Z"
};
var args = {
'path': '/plus/v1/people/me/moments/vault',
'method': 'POST',
'body': JSON.stringify(payload),
'callback': function(response) {
console.log(response);
}
};
gapi.client.request(args);
Potete vedere una demo live qui:
http://wheresgus.com/appactivitiesdemo
È possibile conoscere tutti i tipi di attività dalla documentazione qui:
https://developers.google.com/+/api/moment-types
Aggiornamento
Nota la demo dal vivo è stato aggiornato con il seguente codice e non dovrebbe essere chiamando direttamente gapi.client.request:
writeListenActivity: function(url){
var payload = {
"type": "http://schemas.google.com/ListenActivity",
}
if (url != undefined){
payload.target = { 'url' : url };
}else{
payload.target = {
"type": "http:\/\/schema.org\/MusicRecording",
"id": "uniqueidformusictarget",
"description": "A song about missing one's family members fighting in the American Civil War",
"image": "https:\/\/developers.google.com\/+\/plugins\/snippet\/examples\/song.png",
"name": "When Johnny Comes Marching Home"
};
}
this.writeAppActivity(payload);
},
writeAddActivity: function(url){
var payload = {
"type":"http:\/\/schemas.google.com\/AddActivity",
"startDate": "2012-10-31T23:59:59.999Z"
};
if (url != undefined){
payload.target = {
'url' : 'https://developers.google.com/+/plugins/snippet/examples/thing'
};
}else{
payload.target = {
"id" : "replacewithuniqueidforaddtarget",
"image" : "http:\/\/www.google.com\/s2\/static\/images\/GoogleyEyes.png",
"type" : "http:\/\/schema.org\/CreativeWork",
"description" : "The description for the activity",
"name":"An example of AddActivity"
};
}
this.writeAppActivity(payload);
},
writeAppActivity: function(payload){
gapi.client.plus.moments.insert(
{ 'userId' : 'me',
'collection' : 'vault',
'resource' : payload
}).execute(function(result){
console.log(result);
});
}
Di particolare rilievo è il codice gapi.client.plus.moments.insert che sostituisce la chiamata gapi.client.request.
Grande, sembra che 'requestvisibleactions' sia la radice del problema. E [questo post] (https://plus.google.com/118276561380249048216/posts/2kMX9Dzaf8V) conduce a [diff] corretto (https://code.google.com/p/google-api-php-client/source /diff?spec=svn533&r=533&format=side&path=/trunk/src/auth/Google_OAuth2.php) per l'autenticazione oauth lato server. Grazie per le informazioni! – mente
@class Cosa intendi con "replacewithuniqueidforaddtarget" devi semplicemente digitare un ID casuale qui o qualcosa del genere? – Supertecnoboff
Per l'ID di destinazione, è solo una stringa casuale come suggerito. – class