我想从我的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