用.Net调用GoogleAPI获取Google Task列表失败

代码如下

        static void Main(string[] args)
        {
            // Register the authenticator. The Client ID and secret have to be copied from the API Access
            // tab on the Google APIs Console.
            var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
            provider.ClientIdentifier = "272908629865.apps.googleusercontent.com";
            provider.ClientSecret = "4UmdiNDILOV5bv-qRQz2XUwA";
            var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthentication);

            // Create the service and register the previously created OAuth2 Authenticator.
            var service = new TasksService(auth);

            TaskLists results = service.Tasklists.List().Fetch();

            foreach (TaskList list in results.Items)
            {
                Console.WriteLine(list.Title);
            }
        }

        private static IAuthorizationState GetAuthentication(NativeApplicationClient arg)
        {
            // Get the auth URL:
            IAuthorizationState state = new AuthorizationState(new[] { TasksService.Scopes.Tasks.ToString() });
            state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
            Uri authUri = arg.RequestUserAuthorization(state);

            // Request authorization from the user (by opening a browser window):
            Process.Start(authUri.ToString());
            Console.Write("  Authorization Code: ");
            string authCode = Console.ReadLine();
            Console.WriteLine();

            // Retrieve the access token by using the authorization code:
            return arg.ProcessUserAuthorization(authCode, state);
        }

运行


Process.Start(authUri.ToString());时浏览器里面的结果是:

OAuth2.0 错误:invalid_scope

You can email the developer of this application at:[email protected]

Some requested scopes were invalid. {invalid=[Tasks]}

了解详情

OAuth2 请求详情

猜你喜欢

转载自tedeum.iteye.com/blog/1220528
今日推荐