API Google+ плюс.me

Вопрос: Как использовать people.get с параметром "я"?

Я знаю, как получить объект json при использовании https://www.googleapis.com/plus/v1/people/{id}?key={key}

но какие параметры я должен включать, когда я использую «я» в качестве идентификатора?

(я использую response_type=code в авторизации)

Изменить: (исправлено)

Я использую ASP.NET и нашел эту ссылку, но запрос POST для токена доступа json выдает ошибку. Отправка запроса работает, но когда я использую GetResponse(), я получаю сообщение об ошибке (400). А также я не уверен, что uri, который я использую, правильный: https://accounts.google.com/o/oauth2/token


Редактировать 2:

Проблема решена. Запрос был плохим, потому что я использовал UTF32Encoding вместо UTF8Encoding при преобразовании строки параметра в byte[] перед записью в Stream. С UTF8Encoding работает хорошо. :)

Код, который я написал после этого вопроса:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
UTF8Encoding utfenc = new UTF8Encoding();
byte[] bytes = utfenc.GetBytes(parameters);
Stream os = null;
try // send the post
{
    webRequest.ContentLength = bytes.Length; // Count bytes to send
    os = webRequest.GetRequestStream();
    os.Write(bytes, 0, bytes.Length);        // Send it
}

// error handling...
try // get the response
{
    HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
    if (webResponse == null)
    { return null; }
    StreamReader sr = new StreamReader(webResponse.GetResponseStream());
    return sr.ReadToEnd().Trim();
}
// error handling...

он вызвал это с параметрами отсюда, а возвращенную строку (json) содержит мой access_token.


person e-MEE    schedule 21.09.2011    source источник


Ответы (4)


Мы разработали клиентскую библиотеку .NET для API Google+. Эта библиотека упрощает использование API Google+ из любых языков программирования .NET, таких как C#, VB.NET или ASP.NET.

Более подробную информацию о библиотеке .NET для Google+ можно найти здесь: http://www.googleplustips.com/resources/3332-NET-Library-Google-APIs-released.aspx

Текущая версия поддерживает все API Google+ версии 1 и работает с ключом API. Для вызова любых API Google требуется только один вызов метода.

person T John    schedule 22.11.2011
comment
отличная библиотека, у меня есть один вопрос. GetActivity и ListComments получают все данные, или у него есть какой-то метод (использующий nextPageToken) для получения всех элементов? - person e-MEE; 22.11.2011
comment
Выглядит красиво - предоставьте ссылку на проект с исходным кодом, а не только на DLL, и я мог бы рассмотреть возможность его использования. - person Webveloper; 21.03.2012

Вы можете использовать идентификатор me, если вы получаете доступ к приложению с токеном доступа пользователя, прошедшего проверку подлинности (OAuth). Цитата из документации G+ API:

При использовании значения userId «me» этот метод требует аутентификации с использованием токена, которому предоставлена ​​область действия OAuth https://www.googleapis.com/auth/plus.me. Подробнее об использовании OAuth.

Пример: при использовании клиента PHP API перед выдачей, например.

$plus_api = new apiPlusService($client); // $client is the apiClient() object
$plus_api->activities->listActivities('me', ...);

вы должны сначала установить токен доступа аутентифицированного пользователя, выполнив:

$client->setAccessToken($access_token);

С этим набором идентификатор me будет распознан без проблем.

person Martin Matysiak    schedule 21.09.2011

Я отправил запрос POST (информация здесь), чтобы получить Oauth2 access_token и используется:

https://www.googleapis.com/plus/v1/people/me?key={key}&access_token={token}

person e-MEE    schedule 05.10.2011

GetActivity и ListComments получают все данные, или у него есть какой-то метод (использующий nextPageToken) для получения всех элементов?

Каждый вызов метода возвращает набор результатов страница за страницей. Возвращенный объект имеет свойство NextPageToken, которое можно передать при следующем вызове для получения следующей страницы результирующего набора.

person user1103753    schedule 17.12.2011
comment
да, спасибо, теперь понятно, просто у меня были проблемы с токеном доступа - person e-MEE; 18.12.2011