android - 使用 accountmanager 访问 youtube 帐户

标签 android youtube-api accountmanager

我正在尝试使用客户经理访问 youtube 帐户,这意味着我想使用链接到我的设备的帐户访问 youtube,并使用此获取 youtube token 来访问用户播放列表等。 Android 的 Freedi 应用程序做这样的事情。

我用这段代码来获取 token

    am.getAuthToken(accounts[0], "youtube", true, new AccountManagerCallback<Bundle>() {

        @Override
        public void run(AccountManagerFuture<Bundle> future) {
            try {
                Bundle bundle = future.getResult();
                if (bundle.containsKey(AccountManager.KEY_INTENT)) {
                    Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT);
                    intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivityForResult(intent, 0);
                } else if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {
                    my_access_token = bundle.getString(AccountManager.KEY_AUTHTOKEN);
                    onActivityResult(0,1,null);
                }
            } catch (Exception e) {
                Log.e("TEST", e.getMessage(), e);
            }
        }
    }, null);

但是 var my_access_token 充满了 youtube 无法识别的 token ...... 我如何从中获取 youtube token ?以及如何获取用户播放列表?

最佳答案

你很幸运,因为我刚刚在我正在开发的应用程序上解决了这个问题。

AccountManager.get(getApplicationContext()).getAuthTokenByFeatures("com.google", "oauth2:https://gdata.youtube.com", null, this,
    null, null, new AccountManagerCallback<Bundle>() {

        @Override
        public void run(AccountManagerFuture<Bundle> future) {
        try {
            Bundle bundle = future.getResult();
            String acc_name = bundle.getString(AccountManager.KEY_ACCOUNT_NAME);
            String auth_token = bundle.getString(AccountManager.KEY_AUTHTOKEN);

            Log.d(DEBUG_TAG, "name: " + acc_name + "; token: " + auth_token);

        } catch (Exception e) {
            Log.e(DEBUG_TAG, e.getClass().getSimpleName() + ": " + e.getMessage());
        }
        }
    }, null);

关于android - 使用 accountmanager 访问 youtube 帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12841352/

相关文章:

安卓。确定设备是否为平板电脑的最佳方法是什么?

android - WRITE_SETTINGS 权限不明确

php - 将视频上传到拥有的 youtube channel

java - 使用 Active Directory 在 android 中进行单点登录

android - 在 AccountManager 中添加账户会导致死锁

java - Hashset<> 默认值有什么可能?

java - 如何在非 TabActivity 的 Activity 中创建 tabHost

youtube-api - Google YouTube API v3::服务器到服务器上传服务

youtube-api - YouTube 中的隐藏字幕作为 JSON

Android - 以编程方式将 Google 帐户添加到 Nook 等非 Google 设备