2012-07-29 124 views
1

我正在寫一個android應用程序,它將訪問用戶(功能帳戶)的照片。 如果可能的話,即使硬編碼的功能帳戶ID &密碼將罰款。不需要最終用戶交互。如何通過Picasa API訪問固定用戶的數據android

無法使用谷歌的數據API由於Android不支持 所以我找到了最接近的事是這樣的單用戶Gdata API doc「已安裝」客戶端身份驗證 , 要使用ClientLogin(也稱爲「認證用於安裝的應用程序「),創建一個PicasawebService對象,然後調用setUserCredentials方法來設置用戶ID和密碼

PicasawebService myService = new PicasawebService("exampleCo-exampleApp-1"); 
myService.setUserCredentials("[email protected]", "mypassword"); 

的Picasa服務未在API控制檯可用。

同時,當我嘗試使用OAuth 2.0它不是availalbe

我不知道的Picasa應該是相當受歡迎的,什麼是做這樣的簡單訪問的最佳方式?

官方Picasa的原子的OAuth的樣品

This是官方的Picasa原子的OAuth的樣品,我發現。有一個定製的回叫服務器類,但似乎是利用瀏覽器來獲取令牌。是否有可能在其中硬編碼密碼?

我讀this similar question,似乎也有令牌上的問題。 有沒有人成功按照建議使用"oauth2:https://picasaweb.google.com/data/"

+0

分享一些代碼對我來說非常有用。 Iam沒有找到「google api client 1.10.1_beta」給我的鏈接。我們有任何實例分享給我... – NagarjunaReddy 2012-09-12 13:25:29

回答

0

最後,在Google搜索更多示例之後,舊客戶端登錄是要走的路。

我用谷歌API客戶端1.10.1-β

private static String getTokenByAuthenticatingWithClientLogin(HttpTransport transport) throws IOException { 
    ClientLogin authenticator = new ClientLogin(); 
    authenticator.authTokenType = "lh2"; 
    authenticator.username = "username"; 
    authenticator.password = "password"; 
    authenticator.transport = transport; 
    return authenticator.authenticate().getAuthorizationHeaderValue(); 
    } 

設置在頭

GoogleHeaders headers = new GoogleHeaders(); 
headers.setApplicationName("APOD/1.0"); 
headers.setGDataVersion("2"); 
    String token = getTokenByAuthenticatingWithClientLogin(transport); 
    headers.setAuthorization(token); 

令牌然後使用com.google.api.client.http.HttpRequestFactory構建請求。