授权将文本发送到Google Glass

时间:2013-11-24 18:30:57

标签: google-glass

我一直很难向Glass发送一条简单的消息,我怀疑它与授权请求有关。以下是我的代码:

String AUTH="ya29.1.AADtN_WhePFbTxZdrM8wDWaVyBPgpyvph5EifU-CDQ4z9nbJxBXHLQLiaY3EDBk";

          for (int i=5; i>0; i--)
          {
                  String url = "https://www.googleapis.com/mirror/v1/timeline?fields=text";
                  URL obj = new URL(url);
                  HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

                  con.setRequestMethod("POST");
                  con.setRequestProperty("X-JavaScript-User-Agent", "Google APIs Explorer");
                  con.setRequestProperty("Authorization", "Bearer " + AUTH);
                  con.setRequestProperty("Content-Type", "application/json");
                  con.setRequestProperty("Content-Length", "26");
                  String urlParameters = "{ \"text\": \"Hello world\" }";

不幸的是,它一直在抛出403错误。有什么建议?谢谢。

1 个答案:

答案 0 :(得分:1)

对于初学者,您不应该将授权密钥发布到StackOverflow。

问题可能是授权密钥已过期。默认情况下,密钥仅在60分钟内有效,并且有很多原因可能导致密钥短于此。如果您正在使用API​​资源管理器,它将为您生成并更新密钥,但不会告诉您它们是什么,以防止您遇到这个确切的问题。 (还要确保发出此令牌的客户端应用程序在API控制台或云控制台中启用了镜像API。)

如果您正在使用Java(您看起来是这样),则应该使用OAuth客户端库来管理身份验证以及镜像库以进行调用。这些库将尝试进行调用,如果令牌无效,将重新验证并重新运行查询。您可以在https://developers.google.com/api-client-library/java/apis/

找到有关这两者的更多信息

如果你坚持自己滚动电话(这肯定是一个很好的教育经历),请确保你收到403错误并使用刷新令牌(你确实要求刷新令牌,对吗?)来获得一个新的身份验证令牌。