在Xamarin Android中使用Google云端硬盘重定向OAuth2的网址

时间:2016-03-04 10:58:40

标签: android xamarin oauth-2.0 google-drive-api xamarin.auth

我想从我的Xamarin-android应用程序访问谷歌驱动器。我在谷歌开发者控制台中创建了我的应用程序作为"其他类型"并使用以下代码访问谷歌驱动器:

   this.auth = new OAuth2Authenticator(Constants.GOOGLE_DRIVE_CLIENT_ID,
        Constants.GOOGLE_DRIVE_CLIENT_SECRET, Constants.GOOGLE_DRIVE_SCOPE,
        Constants.GOOGLE_AUTH_URL, Constants.GOOGLE_REDIRECT_URL, 
        Constants.GOOGLE_ACCESS_TOKEN_URL);
   auth.Completed += (sender, eventArgs) => {
      if(eventArgs.IsAuthenticated) {
          account = eventArgs.Account;
      }
   };

常量定义如下:

public static Uri GOOGLE_AUTH_URL = new Uri("https://accounts.google.com/o/oauth2/v2/auth");
public static Uri GOOGLE_REDIRECT_URL = new Uri("urn:ietf:wg:oauth:2.0:oob:auto");
public static Uri GOOGLE_ACCESS_TOKEN_URL = new Uri("https://googleapis.com/oauth2/v4/auth");
public static string GOOGLE_DRIVE_SCOPE = "https://www.googleapis.com/auth/drive";

(由于显而易见的原因,我没有显示客户端ID既不是客户端秘密,也是正确初始化的字符串)

问题在于,当auth完成时," isauthenticated"如果我正确登录,则始终是独立的。 我认为这与检索令牌有关。但我无法弄清楚我做错了什么。

编辑:我正在使用Xamarin.Auth

0 个答案:

没有答案