未找到GoogleWebAuthorizationBroker

时间:2014-03-17 14:14:50

标签: 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);

但是,我不知道为什么,我不能使用'GoogleWebAuthorizationBroker'。我已经安装了所有引用,并且我使用了所有的导入。

当我运行我的程序时,我收到了这两条消息:

'当前上下文'

中不存在名称'CancellationToken'

'当前上下文'

中不存在名称'GoogleWebAuthorizationBroker'

code

error

enter image description here

更新

为了最大限度地减少我的反馈周期,我从头开始创建了一个新的Windows Phone项目,使用Windows Phone OS 7.1作为我的目标操作系统版本,然后我在包管理器控制台中执行了这些命令:

pm> install-package google.apis -pre
pm> install-package google.apis.drive.v2 -pre

然后,在我的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;

最后,我试图通过IntelliSense简单地调用'GoogleWebAuthorizationBroker',但我找不到它。所以,作为我的上一次测试,我编写了“GoogleWebAuthorizationBroker”来查看Visual Studio是否指出了我的错误并提出了任何解决方案,但VS只给了我创建新类或新类型的选项。

最后但并非最不重要的是,我使用Visual Studio Express 2012 for Windows Phone,不知道它是否会影响...

UPDATE2:

当我在对象浏览器中扩展Google.Apis.Auth时,我找不到丢失的类(GoogleWebAuthorizationBroker),看起来我的安装进展不顺利......

enter image description here

更新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

3 个答案:

答案 0 :(得分:6)

如果您正在构建一个“便携式类库”项目,就像我一样,您可能需要手动添加对

的引用

<强> Google.Apis.Auth.PlatformServices

我不知道为什么在将google apis添加到“便携式类库”时遗漏了,但这就是为我解决的问题。

答案 1 :(得分:2)

使用这些:

包管理器中的

pm> install-package google.apis -pre
pm> install-package google.apis.drive.v2 -pre

然后包括:

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;

答案 2 :(得分:2)

我找不到GoogleWebAuthorizationBroker错误,我修复了删除引用: 来自我的项目的Google.Apis.Auth.PlatformServices 转到我拥有所有google api程序集并添加的文件夹 .... \包\ Google.Apis.Auth.1.8.1 \ lib中\ net40 \ Google.Apis.Auth.PlatformServices.dll

到项目。我相信我装错了。