Интеграция Google Buzz API в Android - PullRequest
1 голос
/ 18 июля 2011

Я реализую интеграцию API Google Buzz с Android. Я успешно сделал с OAuth и получил AccessToken. Но когда я пытаюсь отправить сообщение в Живой ленте, он отвечает мне со статусом 401 с ответом ниже.

{ "ошибка": { "ошибки": [{ "Домен": "глобальное", "причина": "недействительные", "сообщение": "Токен неверный - неверный AuthSub . Маркер "" locationType ":" заголовок " "расположение": "Авторизация"}], "код": 401, "сообщение":" Знак неверный - недействительный токен AuthSub. "}}

Я использовал библиотеку singpost для oAuth, и ниже приведен код, который я использую для отправки сообщения в BUZZ.

String serurl = "https://www.googleapis.com/buzz/v1/activities/@me/@self?key=@@KEY&alt=json";

serurl = serurl.replace("@@KEY", AppSettings.GOOGLE_API_KEY);

CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(
                    AppSettings.GOOGLE_CONSUMER_KEY,
                    AppSettings.GOOGLE_CONSUMER_SECRET);
consumer.setMessageSigner(new HmacSha1MessageSigner());
consumer.setTokenWithSecret(destination.AccessToken,
                    destination.AccessTokenSecret);

String bstr = "{\"data\": {\"object\": {\"type\": \"note\",\"content\": \""
                + msg + "\"}}}";

HttpClient client = new DefaultHttpClient();

HttpPost method = new HttpPost(consumer.sign(serurl));

method.setHeader("Content-Type", "application/json");
method.addHeader("Accept", "application/json");

method.addHeader("Authorization", URLEncoder.encode(destination.AccessToken));


method.setEntity(new StringEntity(bstr, "UTF-8"));


HttpResponse response = client.execute(method);

final HttpEntity entity = response.getEntity();
String responseString = "";
if (entity != null) {
    InputStream inputStream = null;
    try {
         inputStream = entity.getContent();
          responseString = Utils.convertinputStreamToString(new Utils.FlushedInputStream(
                                    inputStream));
        } finally {
            if (inputStream != null) {
                inputStream.close();
            }
            entity.consumeContent();
        }
    }
}
    System.out.println(responseString);

И я получаю этот ответ:

{"error":{"errors":[{"domain":"global","reason":"invalid","message":"Token invalid - Invalid AuthSub token.","locationType":"header","location":"Authorization"}],"code":401,"message":"Token invalid - Invalid AuthSub token."}}

Кто-нибудь здесь, кто может помочь мне в этом.

Спасибо.

...