如何使用 DotNetOpenAuth 检索 google 个人资料?

2023-11-30

我正在尝试使用 DNOA 为我的应用程序提供 OpenId 支持,以便离开我迄今为止一直使用的 Janrain 解决方案。问题是,到目前为止,我拥有的用户拥有基于个人资料的标识符(https://www.google.com/profiles/11223344556677...),而 DNOA 检索到的标识符的形式为https://www.google.com/accounts/o8/id?id=xxxxxyyyyyafgsdgfsdhg.

如何检索个人资料信息?通过属性交换?以及哪个属性?或者还有其他的API吗?我看到登录页面有一个谷歌提供商和一个不同的谷歌个人资料提供商,所以这里有人有答案......:)

Update:谷歌个人资料的端点是(https://www.google.com/profiles/)

所以......现在的问题是如何获取谷歌个人资料ID号


谷歌个人资料 ID 号是通过“http://schemas.openid.net/ax/api/user_id”属性检索的。将其设置为必需的

在DNOA中,

var fetch = new FetchRequest();

fetch.Attributes.AddRequired("http://axschema.org/contact/country/home");
fetch.Attributes.AddRequired("http://axschema.org/contact/email");
fetch.Attributes.AddRequired("http://axschema.org/namePerson/first");
fetch.Attributes.AddRequired("http://axschema.org/namePerson/last");
fetch.Attributes.AddRequired("http://axschema.org/pref/language");
fetch.Attributes.AddRequired("http://schemas.openid.net/ax/api/user_id");

有趣的是,如果我省略其中一些属性,我就无法获取 api/user_id。 无法弄清楚那部分,但我现在并不关心。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 DotNetOpenAuth 检索 google 个人资料? 的相关文章

随机推荐

  • 无法使用 fopen (php) 打开文件

    我正在尝试打开一个文件以在 php 脚本中读取 但遇到问题 这是我的代码 fileHandle fopen 1234 main csv r or die Unable to open if file exists fileHandle ec
  • 播放系统声音而不导入自己的声音

    是否可以在不导入自己的系统声音的情况下播放现有的系统声音 我发现这个 systemSoundID 列表对于直接访问声音 ID 非常有用 http iphonedevwiki net index php AudioServices 例如 播放
  • 如何从文件中读取变量,每行多个变量?

    我正在尝试从一个文件中读取数据 该文件有多行 每行都有 3 个我想要分配给变量并使用的信息 我想出了如何在终端上简单地显示它们 但无法弄清楚如何实际将它们分配给变量 while read i do for j in i do echo j
  • 使用 graphviz 绘制大图的最佳方法是什么

    我需要在图像上绘制大型数据集 我使用 graphvis 命令行和所有可用的工具 dot neato twopi 等 但结果不可读并且包含重叠 我需要的是显示边缘带有标签的节点 重叠最小化 以便图形可读并且可以打印在 A4 或 A3 纸上 我
  • jquery Ajax 使用 Internet Explorer 响应“未定义”

    我遇到了 jquery ajax 请求的情况
  • 'WCHAR* 类型的参数与“const char*”不兼容'

    DWORD ProcMem Module LPSTR ModuleName HANDLE hModule CreateToolhelp32Snapshot TH32CS SNAPMODULE dwPID MODULEENTRY32 mEnt
  • 为什么Java 8提供方法引用?

    打电话用什么比较好 names stream forEach System out println Than names stream forEach n gt System out println n 尽管事实上你必须编写更少的代码 在
  • sizeof 以及当一个字节大于 8 位时?

    Since sizeof是一个运算符 为什么我们可以使用sizeof something 就像函数调用一样 什么时候一个字节不是8位 此上下文中的字节与无符号字符相同 并且可能大于 8 位 字节有可能小于8位吗 既然 sizeof 是一个运
  • js 异步/等待返回承诺

    只做一个简单的功能 async function doAsync return await test console log doAsync 输出 承诺 PromiseStatus pending PromiseValue undefine
  • Delphi Chromium - 迭代 DOM

    我正在尝试使用 TChromium 迭代 DOM 并且因为我使用 Delphi 2007 所以我无法使用匿名方法 所以我创建了一个继承 TCEFDomVisitorOwn 的类 我的代码如下 但由于某种原因 访问 过程从未被调用 所以什么也
  • 使用bunyan logger登录nodejs

    我正在我的nodejs代码中初始化bunyan记录器 如下所示 var log bunyan createLogger name myapp stream process stdout level info 这是来自 Bunyan 文档ht
  • 将嵌套字典转换为 IReadOnlyDictionary

    我正在尝试给出一个IReadOnly 内部参考Collection对象 这在大多数情况下效果很好 但如果我想将包含集合的字典转换为IReadOnlyDictionary含有一个IReadOnlyCollection 这是一个代码示例 var
  • Python Outlook 获取来自发件人的所有电子邮件

    我正在尝试使用 python 来浏览 Outlook 并获取发件人的所有电子邮件 我已经看过但不知道如何做到这一点 我可以按主题获取电子邮件并返回发件人 但我希望获取所有发件人然后返回主题 这就是我用来按主题获取发件人的方法 import
  • 如何从浏览器保存 .pdf?

    我尝试使用在 stackoverflow 上找到的不同方法来保存 pdf 文件 包括FileUtils IO然而 我总是会把它弄坏 当我使用记事本打开损坏的文件时 我得到以下内容
  • 将gridview转换为图像

    我想将 gridview 转换为图像并将其保存到 asp net 3 5 中的本地磁盘 我不知道该怎么做 任何人都可以建议一些东西 提前致谢 以下链接可能对您有帮助 将 DataGridView 转换为位图 使用 Reporting Ser
  • 点击时设置 PHP cookie

    所以我宁愿不使用 JS jQuery 但我似乎无法让它工作 我有一个链接 a href hideupdates hide Hide Updates a 我正在尝试用它来设置 cookie if GET hideupdates hide se
  • 将新值写入数组

    这是我的代码片段 typedef float point2 2 point2 a 90 90 point2 b 90 90 point2 c 90 90 point2 d 90 90 glBegin GL POLYGON glVertex2
  • SQL Developer 不显示 dbms_output

    我正在尝试在 SQL Developer 中编写 PL SQL 代码 但它没有显示输出 我的程序编译成功 这是代码 set serveroutput on declare begin dbms output put line Hi end
  • 使用条件 ?:(三元)运算符的好处

    与标准 if else 语句相比 运算符有哪些优点和缺点 显而易见的是 条件 运算符 处理直接值比较和赋值时更短 更简洁 似乎不像 if else 结构那么灵活 标准如果 否则 可以应用到更多的情况 比如函数调用 通常是不必要的长 每个语句
  • 如何使用 DotNetOpenAuth 检索 google 个人资料?

    我正在尝试使用 DNOA 为我的应用程序提供 OpenId 支持 以便离开我迄今为止一直使用的 Janrain 解决方案 问题是 到目前为止 我拥有的用户拥有基于个人资料的标识符 https www google com profiles