Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在.NET桌面应用程序中检索访问令牌_C#_.net_Facebook_Facebook Authentication - Fatal编程技术网

C# 无法在.NET桌面应用程序中检索访问令牌

C# 无法在.NET桌面应用程序中检索访问令牌,c#,.net,facebook,facebook-authentication,C#,.net,Facebook,Facebook Authentication,我正在编写一个在Windows计算机上运行的.NET应用程序。无法通过浏览器访问它。问题是,我不能像应该的那样进行身份验证。我目前正在用C#.NET编写代码,更具体地说是用C# 我的表单上有一个webbrowser控件 用户通过此webbrowser控件登录到facebook 登录后,我启动身份验证过程 然后我检索一个代码 这就是问题所在。使用此代码,我想获得一个访问令牌。 生成的请求URL如下所示:https://graph.facebook.com/oauth/access_token?

我正在编写一个在Windows计算机上运行的.NET应用程序。无法通过浏览器访问它。问题是,我不能像应该的那样进行身份验证。我目前正在用C#.NET编写代码,更具体地说是用C#

  • 我的表单上有一个webbrowser控件
  • 用户通过此webbrowser控件登录到facebook
  • 登录后,我启动身份验证过程
  • 然后我检索一个代码
这就是问题所在。使用此代码,我想获得一个访问令牌。 生成的请求URL如下所示:
https://graph.facebook.com/oauth/access_token?client_id=____MY_APP_ID______&redirect_uri=http://localhost/&client_secret=_____MY_APP_SECRET_____&code=____MY_RETREIVED_CODE_____
并通过以下代码生成

请注意,我的重定向URL是
http://localhost
。这应该没问题吧

另外,在我的应用程序设置中,我有以下信息

网站URL:
http://localhost/
站点域:localhost

执行此操作时,会出现以下错误:

用户代码未处理Webexception 远程服务器返回错误:(400)请求错误

以下是我认为可能会出错的地方:

  • 我的应用程序设置正确吗
  • 我的重定向url应该是
    http://localhost
    ,即使实际上没有一个服务在监听
最重要的是:

  • 如何消除此错误并检索访问令牌

提前谢谢

您出现此错误是因为您不应该从桌面应用程序调用此URL:据我所知,您不能使用令牌端点进行桌面应用程序身份验证。此外,您还可以直接获取访问令牌(无需先请求代码)。这是你必须做的

在嵌入式web浏览器中加载以下URL:

https://www.facebook.com/dialog/oauth?
  client_id=YOUR_APP_ID&
  redirect_uri=https://www.facebook.com/connect/login_success.html
将要求用户登录,并使用URL中的访问令牌重定向到此URL:

https://www.facebook.com/connect/login_success.html#access_token=...
因此,您必须检测重定向并从URL检索访问令牌。

谢谢quinten

然而,我通过使用C#Facebook SDK解决了自己的问题。 这个软件开发工具包真的帮了大忙

包括大量样品(包括授权)

任何使用facebook在.NET中编程的人都应该查看它!为facebook编写代码现在容易多了


非常感谢!我也有同样的问题。但如果我的应用程序在终端上运行,你会怎么做呢?我肯定没有合适的浏览器。更多细节:我正在构建一个KDE Plasmoid,将状态发布到Facebook帐户。我不能有一个嵌入式浏览器也。我正在使用Python。拥有浏览器的最佳方式是使用Mechanize模块(如果有帮助的话):)你好,主人。由于oauth流和安全原因,您无法让用户在没有浏览器的情况下登录Facebook。。。您可以尝试通过在Python中处理HTTP请求来模拟浏览器进行黑客攻击,但我不确定这一点。您将询问用户的用户名和密码,这违反了Facebook的服务条款。感谢您的回复。但即使在嵌入式浏览器中,我(Facebook)也会要求输入用户名/密码。如果是我的浏览器,我可以很好地检索用户名和密码,而用户也不知道。如果你使用嵌入式浏览器,你手中就不会有用户的凭据,因为他将直接在Facebook网站上键入这些凭据(当然,如果你听击键的话除外)。无论如何,最终用户将不知道您是否听取了他的凭据,他信任开发人员,您可以做任何您想做的事情。不是你不能,而是你不应该。如果你选择这样做,Facebook不会让你的生活更轻松(没有图书馆,没有文档等)。谢谢你的回复。:-)我针对我的问题提出了一个新问题。
https://www.facebook.com/connect/login_success.html#access_token=...