2012-02-02 57 views
3

我試圖讓使用的Java對象:Google+的OAuth無效頭

https://www.googleapis.com/oauth2/v1/userinfo?alt=json

我通過以前獲得我的訪問令牌Google+用戶的信息:

URL googleURL = new URL("https://www.googleapis.com/oauth2/v1/userinfo?alt=json"); 

      URLConnection googleConn = googleURL.openConnection(); 
      googleConn.setAllowUserInteraction(false); 
      googleConn.setDoOutput(true); 

      **googleConn.setRequestProperty("Authorization", "Bearer "+accessToken);** 

      BufferedReader rd = new BufferedReader(new InputStreamReader(googleConn.getInputStream())); 

      String result = ""; 
      while(rd.ready()) 
       result += rd.readLine(); 
      rd.close(); 

但它給我的HTTP錯誤代碼401(無效標題)。

這是在頭中傳遞訪問令牌的正確方法嗎?

googleConn.setRequestProperty("Authorization", "Bearer "+accessToken); 

回答

1

要訪問Google+個人資料信息你真的想使用人獲得API:https://www.googleapis.com/plus/v1/people/me你可能要檢查出reference docsAPI Explorer用它玩。

此外,您的編碼水平遠低於您的需要。雖然您可以直接使用REST端點,但如果使用official client library,事情會變得更容易。如果你走這條路線,甚至有一個Google+ starter project for Java

如果你想繼續低級別,你應該使用OAuth前綴代替Bearer傳入訪問令牌。您生成的HTTP請求標頭將如下所示:

GET https://www.googleapis.com/plus/v1/people/102817283354809142195 

Authorization: OAuth ya29.BHES61Rxr4Cq-Elcfpvx_2oWC443fMOEQV9iS5-M7ZjJ6xk