Моменты Google+: Вставьте универсальную ошибку AddActivity

1

Я пытаюсь опубликовать момент приложения для 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. Консоль.

Заранее благодарим за любые идеи

Теги:
rest
google-plus

1 ответ

1
Лучший ответ

Это объявление момента, которое сработало для меня. По какой-то причине поле описания требуется, и не добавляя его, это приведет к появлению этого странного сообщения об ошибке.

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.

Надеюсь, это поможет.

  • 0
    большое спасибо. Это сработало для меня!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню