Ped*_*lso 5 c# windows-phone-7 oauth-2.0 google-api-dotnet-client
我正在学习C#(开发用于Windows手机),并且我试图将我的用户验证到Google的帐户中.我正在使用此代码:https: //developers.google.com/api-client-library/dotnet/guide/aaa_oauth#wp
var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read),
new[] { DriveService.Scope.Drive },
"user",
CancellationToken.None);
Run Code Online (Sandbox Code Playgroud)
但是,我不知道为什么,我不能使用'GoogleWebAuthorizationBroker'.我已经安装了所有引用,并且我使用了所有的导入.
当我运行我的程序时,我得到了这两条消息:
'当前上下文中不存在'CancellationToken'这个名字'
'当前上下文中不存在'GoogleWebAuthorizationBroker'这个名称'
更新:
为了最小化我的反馈周期,我从头开始创建一个新的Windows Phone项目,使用Windows Phone OS 7.1作为我的目标操作系统版本,然后我在包管理器控制台中执行这些命令:
pm> install-package google.apis -pre
pm> install-package google.apis.drive.v2 -pre
Run Code Online (Sandbox Code Playgroud)
然后,在我的MainPage.xaml.cs中,我写了这些导入:
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System.IO;
using Google.Apis.Drive.v2;
using Google.Apis.Util.Store;
using System.Threading;
Run Code Online (Sandbox Code Playgroud)
最后,我试图通过IntelliSense简单地调用'GoogleWebAuthorizationBroker',但我找不到它.因此,作为我的上一次测试,我编写了"GoogleWebAuthorizationBroker"来查看Visual Studio是否指出了我的错误并提出了任何解决方案,但VS只给了我创建新类或新类型的选项.
最后但并非最不重要的是,我使用Visual Studio Express 2012 for Windows Phone,不知道它是否会影响...
UPDATE2:
当我在对象浏览器中扩展Google.Apis.Auth时,我找不到丢失的类(GoogleWebAuthorizationBroker),看起来我的安装进展不顺利......
更新3:
根据NuGet(https://www.nuget.org/packages/Google.Apis),Google.Apis与Windows Phone 7.5和8.0兼容.正如我在那里所说,我使用Windows Phone OS 7.1作为我的目标操作系统版本,我更新了我的7.1 SDK,但找不到7.5 sdk,所以,我应该使用7.8吗?请记住,我需要为Windows Phone 7.X开发
小智 6
如果您正在构建一个"可移植类库"项目,就像我一样,您可能需要手动添加引用
Google.Apis.Auth.PlatformServices
我不知道为什么在将google apis添加到"便携式类库"时遗漏了,但这就是为我解决的问题.
使用这些:
在包管理器中。
pm> install-package google.apis -pre
pm> install-package google.apis.drive.v2 -pre
Run Code Online (Sandbox Code Playgroud)
然后包括:
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System.IO;
using Google.Apis.Drive.v2;
using Google.Apis.Util.Store;
using System.Threading;
Run Code Online (Sandbox Code Playgroud)