1

我想从我的 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,也没有显示客户端密码,但它们是正确初始化的字符串)

问题是,当身份验证完成时,无论我是否正确登录,“已验证”总是独立为假。我认为这与检索令牌有关。但我无法弄清楚我做错了什么。

编辑:我正在使用 Xamarin.Auth

4

0 回答 0