2013-11-24 47 views
0

我一直在向Glass发送简单的消息非常困难,我怀疑它与授权请求有关。以下是我的代码:向Google 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错误。有什么建议?谢谢。

+0

呃,关闭打呵欠for循环? –

+0

它已关闭。这是代码的摘录。 – user3028927

回答

1

对于初学者,您不应将身份验证密钥发布到StackOverflow。

问题很可能是验证密钥已过期。默认情况下,密钥只有60分钟有效,并且有很多原因可能会导致密码短于此密码。如果您使用的是API Explorer,它会为您生成并更新密钥,但不会告诉您它们是如何防止您遇到此问题。 (请确保此令牌的客户端应用程序已在API控制台或云控制台中打开了Mirror API。)

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

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