存储访问令牌,Google+ 集成 Android 应用程序

3

我对Android不太熟悉,我从Android SDK中导入了GooglePlayServices的示例应用程序开始学习。该应用程序“Plus”允许我使用G+凭据进行登录。示例代码使用了GoogleApiClient

这只在客户端上验证应用程序。我如何将访问令牌发送到我的服务器或将访问令牌存储到共享首选项中?

请有人告诉我应向哪个文件添加访问令牌代码?


你是否已经获取到了 AccessToken - Spring Breaker
不,我必须在后台线程中请求它。你能帮我做到这一点,并最终将其存储吗? - user3105927
1个回答

2

我假设您已成功登录GooglePlus。请按以下步骤获取AccessToken并使用SharedPreference进行存储:

SharedPreferences SharedPreference;    
Editor editor;

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

                 try {
                     token=GoogleAuthUtil.getToken(User_SignUp.this,Plus.AccountApi.getAccountName(mGoogleApiClient),"oauth2:"+Scopes.PLUS_LOGIN+" "+Scopes.PLUS_ME); //Change the permissions as per your need.
                 } 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());
                    // Intent recover = e.getIntent();
                    // startActivityForResult(recover, REQUEST_CODE_TOKEN_AUTH);
                 } 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) {

                 if(token!=null)
                 {
                  Log.i(TAG, "Access token retrieved:" + token);
                  SharedPreference = getApplicationContext().getSharedPreferences("TokenPreference", 0); 
                  editor = SharedPreference.edit();
                  editor.putString("access_token",token);                               
                  editor.commit();                      

                 }

             }

         }

请在需要获取访问令牌的地方使用下面的代码片段:
new GetGoogleAuthTask().execute();

你能告诉我怎样将获取的令牌发送到我的服务器吗? - user3105927
你只需要像发送简单字符串数据一样发送它。阅读一些关于如何使用HTTP向服务器发送数据的教程。 - Spring Breaker
我知道这个..!但是在Java中,我想要一些实现演示。我已经有一个运行的节点服务器。现在我想至少在我的控制台中输出这个获得的令牌。就在tokenValue=new GetGoogleAuthTask().execute()下面,我需要将它发送到服务器对吗? - user3105927
1
还有一件事我想问。我需要编写代码来验证我的服务器上的访问令牌。那么该怎么做呢?我的服务器代码可能不是用Java编写的,对吧? - user3105927

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接