【问题标题】:Android Google Api for SpreadSheet用于电子表格的 Android Google Api
【发布时间】:2012-03-28 22:25:49
【问题描述】:

我正在尝试弄清楚如何使用 Google Api 访问/编辑 Google 电子表格。 我希望始终与来自许多设备的同一个电子表格建立连接。我有使用 AccountManager 的示例,但我不应该使用用户帐户。有什么好的教程吗? 现在我有以下..对吗?

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@gmail.com", "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
    }

【问题讨论】:

标签: android api google-api spreadsheet


【解决方案1】:

所需权限:

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

从表中选择所需的外标记类型:

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();
        }
    }
};

}

【讨论】:

  • 谢谢,但这需要用户在他的帐户中获得电子表格之一。想象一下,您必须将应用程序商业化,并且您希望电子表格成为您的服务器……您不能要求任何人在他的帐户中设置帐户。有没有什么办法可以允许从代码中“盲登录”?
【解决方案2】:

an API 现已发布,可用于 java 脚本,可以在您的应用程序中运行。他们在视频here 中展示了如何将其集成到 Android 应用中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多