2013-04-14 115 views
0

我正在使用DotNetOpenAuth.AspNet进行Facebook身份验证。一切运作良好。DotNetOpenAuth AspNet请求status_update权限

但是,我必须更改应用程序权限,因此当用户登录时,我应该请求status_update权限。我已更改Facebook应用程序配置中的权限,但我没有在我的应用程序中更新登录窗口。

enter image description here

而且我试图处理OAuthWebSecurity.RegisterFacebookClient方法调用与传递额外的数据范围的属性,但没有任何访问。

有人知道如何使用DotNetOpenAuth.AspNet请求额外的Facebook权限吗?

编辑:

当我尝试这样做后,我得到这个错误:

(OAuthException - #200)(200#)的用户无权执行此操作的应用程序

这是我所得到的,当我尝试登录到我的应用程序:

enter image description here

没有status_update权限。

谢谢。

回答

3

在这一点上,你不能。在DotNetOpenAuth.AspNet的内部深处,有一个名为FacebookClient的类。类内部是一种称为“GetServiceLoginUrl”的方法。

该版本4.3.0中的方法将范围硬编码为“email”。

但是,如果您转到Nuget预发布存储库,并从那里获取预发布版本4.3.1,则FacebookClient类将在构造器范围中附带一个附加参数。您可以在那里添加权限,并将它们添加到请求url。

预发布包源是http://teamcity.dotnetopenauth.net:82/guestAuth/app/nuget/v1/FeedService.svc/

new FacebookClient(appId, secret, new[] {"email","manage_pages"}); 

,你应该是好去。

+0

嗨,彼得,谢谢你的回答。我已经编写了一个新的FacebookScopeClient类,该类继承自DotNetOpenAuth.AspNet.Clients.OAuth2Client,并将其注册为客户端,并且效果很好。 – Koste

+0

好的。我现在正在经历同样的过程。 –