2012-03-12 8 views
2

Google 스프레드 시트 액세스/수정에 Google Api를 사용하는 방법을 알아 내려고합니다. 많은 기기에서 동일한 스프레드 시트로 항상 연결하고 싶습니다. AccountManager를 사용하는 예제가 있지만 사용자 계정을 사용해서는 안됩니다. 좋은 토리토리가 있습니까? 지금 당장은 다음과 같은 것이 있습니다. 맞습니까?Android 스프레드 시트 용 Google Api

AccountManager accountManager = AccountManager.get (this); ArrayList googleAccounts = new ArrayList();

// Just for the example, I am using the first google account returned. 
    Account account = new Account("[email protected]", "com.google"); 

    // "wise" = Google Spreadheets 
    AccountManagerFuture<Bundle> amf = accountManager.getAuthToken(account, "wise", null, this, null, null); 

    try { 
     Bundle authTokenBundle = amf.getResult(); 
     String authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); 

     // do something with the token 
     //InputStream response = sgc.getFeedAsStream(feedUrl, authToken, null, "2.1"); 

    } 
    catch (Exception e) { 
     // TODO: handle exception 
    } 
+0

여기에 멋진 예제가 있습니다. http://code.google.com/p/yetanothercoder/ 누군가가 도와 줄 수 있기를 바랍니다. –

답변

2

필요한 사용 권한 :

<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/> 
<uses-permission android:name="android.permission.GET_ACCOUNTS"/> 
<uses-permission android:name="android.permission.USE_CREDENTIALS"/> 

선택이 필요 OUTH 테이블에서 토큰 유형 :

http://code.google.com/intl/ja/apis/spreadsheets/faq_gdata.html#Authentication

스프레드 시트 데이터 API 현명한

코드 샘플 :

public class OuthTokenActivity extends Activity { 
String tag = "DEBUG"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    AccountManager mAccountManager = AccountManager.get(this); 
    for (Account account : mAccountManager.getAccountsByType("com.google")) { 
     mAccountManager.getAuthToken(account, "wise", savedInstanceState, 
       this, resultCallback, null); 
    } 
} 

AccountManagerCallback<Bundle> resultCallback = new AccountManagerCallback<Bundle>() { 
    public void run(AccountManagerFuture<Bundle> future) { 
     try { 
      Bundle result = future.getResult(); 
      String token = (String) result.get(AccountManager.KEY_AUTHTOKEN); 
      String name = (String) result.get(AccountManager.KEY_ACCOUNT_NAME); 
      Log.d(tag, String.format("name: %s, token: %s", name, token)); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}; 

}

+1

감사하지만이 경우 사용자가 자신의 계정에 스프레드 시트 하나가 있어야합니다. 앱을 상용화하고 스프레드 시트가 서버가되기를 원한다고 가정 해보십시오. 아무도 자신의 계정에 계정을 설정하도록 요청할 수 없습니다. 코드에서 "시각 장애인 로그인"을 허용 할 수있는 방법이 없습니까? –

1

앱에서 실행될 수 있습니다 자바 스크립트를 사용할 수 이제 발표 an API,있다. 그리고이 동영상을 Android 앱에 통합하는 방법을 동영상 here에 표시합니다.

관련 문제