【问题标题】:authentication gmail api C# windows phone 8.1身份验证 gmail api C# windows phone 8.1
【发布时间】:2015-06-11 11:15:07
【问题描述】:

我在使用 gmail api for c# 对我的应用程序进行身份验证时遇到问题。如果有人可以提供帮助,我将不胜感激! myCredintial 和 myServer 是定义服务器类的私有类,每次我在调用 AuthorizeBroker 时收到“System.IO.FileNotFoundException 错误”

if (myServer != null)
            return;

        Uri secrets = new Uri("ms-appx:///Assets/client_secrets.json");

        myCredential = await GoogleWebAuthorizationBroker.AuthorizeAsync(new Uri("ms-appx:///Assets/client_secrets.json", UriKind.RelativeOrAbsolute),
                new[] { GmailService.Scope.GmailReadonly },
                "user",
                CancellationToken.None);
        String s = myCredential.UserId;
        myServer = new GmailService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = myCredential,
            ApplicationName = "test",
        });

【问题讨论】:

  • 您是否收到任何错误响应或错误代码?
  • 实际上它给了我一个找不到文件的异常,这真的很奇怪,因为当我在预期文件旁边传递另一个 json 文件的 uri 时,它给了我另一个格式不匹配或其他错误!有什么想法???
  • 我想我有点晚了,但最好的猜测是检查文件Copy to output directory 设置是否设置为Copy alwaysCopy if newer。可以在解决方案资源管理器的文件属性中设置。
  • 我忘记更新帖子了,但问题已通过将“构建操作”更改为 JSON 文件属性中的内容解决。

标签: c# authentication google-api windows-phone-8.1 gmail-api


【解决方案1】:

默认情况下,解决方案中复制的文件的“构建操作”属性为空,通过将“构建操作”属性更改为内容来解决问题。

【讨论】:

  • 谢谢...谢谢!请标记为正确答案!
【解决方案2】:

我遇到了同样的问题,我不确定根本原因是什么,但我的解决方案是复制一个正在工作的 json 文件并指向那个文件。

我们的项目中有 DataModel/SampleData.json,它是在我们创建中心页面时由 Visual Studio 自动生成的。我知道可以加载此文件,因此我将其保存为 client_secrets.json 并将其留在我们的 DataModel 文件夹中。我还注意到,复制到输出目录的属性设置为“不复制”,因此我将其保留为 client_secrets.json。

只要我指向那个新文件,它就起作用了。不确定这是我如何创建第一个的问题,还是它位于资产文件夹中,或者我已将其设置为始终复制。

【讨论】:

  • 我试过了,但它不起作用,有趣的是,我的 PC 上的开发站点中存在的 google api 包让我想知道解决方案设置是否有问题。
猜你喜欢
  • 2015-03-17
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
相关资源
最近更新 更多