Я пытаюсь опубликовать момент приложения для Google+. Приложение успешно завершает процесс аутентификации и получает токен доступа. Проблема возникает, когда я пытаюсь вызвать Moment.Insert API на " https://www.googleapis.com/plus/v1/people/me/moments/vault ", всегда возвращает это неуказанное сообщение об ошибке
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid Value"
}
],
"code": 400,
"message": "Invalid Value"
}
}
Ниже перечислены шаги API, которые перечислены ниже: https://developers.google.com/+/api/latest/moments/insert, и запрос выглядит так:
{
"target": {
"kind": "plus#itemScope",
"name": "Sample Test for Google Plus REST API",
"id": "88370F18-81A4-47F5-BC2F-19EDBE326A20",
"url": "http://schema.org/Thing"
},
"type": "http://schemas.google.com/AddActivity",
"kind": "plus#moment"
}
Я также добавляю токен доступа в заголовок запроса и ключ api к URL-адресу в качестве параметра.
Я не знаю, не хватает ли я чего-то здесь, но может быть стоит сказать, что я получаю то же сообщение об ошибке при использовании API-обозревателя в Google Dev. Консоль.
Заранее благодарим за любые идеи
Это объявление момента, которое сработало для меня. По какой-то причине поле описания требуется, и не добавляя его, это приведет к появлению этого странного сообщения об ошибке.
var client = new RestClient();
var moment = new
{
kind = "plus#moment",
type = "https://schemas.google.com/AddActivity",
target = new
{
kind = "plus#itemScope",
id = "GENERATE-A-POST-ID-HERE",
type = "https://schemas.google.com/AddActivity",
name = "SOMTHING-TO-POST",
description = "SOMTHING-TO-POST"
}
};
var request = new RestRequest(string.Format("{0}?key={1}", GOOGLE_POST_URL, GOOGLE_APP_ID), Method.POST);
request.AddHeader("authorization", "BEARER-ACCESS-TOKEN-RECEIVED-BEFORE");
request.AddBody(moment);
client.ExecuteAsync(request, OnPostCompleted);
Я использую библиотеку RestSharp для обработки операций REST.
Надеюсь, это поможет.