我正在使用DotNetOpenAuth.AspNet进行Facebook身份验证。一切都运作良好。
但是,我必须更改应用程序权限,以便在用户登录时我应该请求status_update权限。我在Facebook应用程序配置中更改了权限,但我没有在我的应用程序中获得更新的登录窗口。
此外,我尝试使用传递额外数据范围属性来处理OAuthWebSecurity.RegisterFacebookClient方法,但没有任何访问权限。
有人知道如何使用DotNetOpenAuth.AspNet申请额外的Facebook权限吗?
修改
当我尝试发帖时,我收到了这个错误:
(OAuthException - #200)(#200)用户尚未授权应用程序执行此操作
这是我尝试登录我的应用时得到的结果:
没有status_update权限。
感谢。
答案 0 :(得分:3)
此时你不能。在DotNetOpenAuth.AspNet的内部深处,有一个名为FacebookClient的类。在类中是一个名为“GetServiceLoginUrl”的方法。
版本4.3.0中的此方法将范围硬编码为“email”。
但是,如果你去Nuget预发布存储库,并从那里获得预发布版本4.3.1,那么FacebookClient类在构造函数中带有一个附加参数 - 作用域。您可以在其中添加权限,并将其添加到请求网址。
预发布包源是http://teamcity.dotnetopenauth.net:82/guestAuth/app/nuget/v1/FeedService.svc/
new FacebookClient(appId, secret, new[] {"email","manage_pages"});
你应该好好去。