如何使用Google plus获取访问令牌

时间:2014-12-24 17:37:33

标签: android oauth-2.0 google-plus google-oauth

我已按照this教程获取access token,其工作原理如链接所示。现在如何从中获取电子邮件和个人资料照片?我已经实施了found this tutorial,它向我展示了如何快速启动google + signin。

但是在这方面我如何获得访问令牌?

我发现这些链接向我展示了基本部分,但任何人都可以说我需要在哪里实现它们?

那么我如何使用AsyncTask

来使用它

最后,我想获得访问令牌,电子邮件和个人资料图片,以及教程中的任何人如何获得?

欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

几乎没有办法。这是最容易理解的。首先,构建一个扩展AsyncTask<>的类。您希望String[]成为返回类型。注意:AsyncTask<Params, Progress, Result>因此,如果要返回字符串,则需要扩展AsyncTask<Void, Void, String>

 public class YourAsyncTaskName extends AsyncTask<Void, Void, String> {
        @Override
        protected String doInBackground(Void... params) {
            String token = null;

            try {
                token = GoogleAuthUtil.getToken(
                        MainActivity.this,
                        mGoogleApiClient.getAccountName(),
                        "oauth2:" + SCOPES);
            } catch (IOException transientEx) {
                // Network or server error, try later
                Log.e(TAG, transientEx.toString());

            } catch (UserRecoverableAuthException e) {
                // Recover (with e.getIntent())
                Log.e(TAG, e.toString());  

            } catch (GoogleAuthException authEx) {
                // The call is not ever expected to succeed
                // assuming you have already verified that 
                // Google Play services is installed.
                Log.e(TAG, authEx.toString());
            }

            return token;
        }

        @Override
        protected void onPostExecute(String token) {
            /* here you have your token */
            Log.i(TAG, "Access token retrieved:" + token);
        }

 } 

然后,要开始此任务,只需创建一个实例并调用.execute();

YourAsyncTaskName asyncTask = new AsyncTaskName();
asyncTask.execute();