2014-03-07 210 views
1

我已经阅读了很多关于如何处理发布到FB而不登录的帖子 - 特别是在我的实例到托管页面,一些使用已停用的“offline_access”方法,其他与令牌相关的内容。使用C#登录到Facebook页面没有登录使用C#

我创建了一个令牌从我的图形API - https://developers.facebook.com/tools/explorer

我也在一些代码创建了一个小测试例如

FacebookClient fb = new FacebookClient("Access_Token"]); 
Dictionary<string, object> argList = new Dictionary<string, object>(); 
argList["message"] = "my message"; 
fb.Post("mypage/feed", argList); 

这可以完美地按预期工作,并发布到有问题的页面墙上。但是如果我从Facebook注销,它不起作用,并反过来会引发错误。

Facebook.FacebookOAuthException: (OAuthException - #190) 
Error validating access token: This may be because the user logged out 

我卡住了,为什么当我在https://developers.facebook.com/tools/explorer区域设置正确的权限,如出现这种情况“publish_stream”,“manage_pages”等

我甚至已将令牌分配给我创建的应用程序,但仍然无济于事。

有没有人有一个在C#中的例子,说明如何发布,当你没有登录?

在此先感谢,

契约。

回答

0

可能是因为访问令牌验证过期,如果您有用于生成访问令牌的应用程序ID和密钥,则可以使用以下代码将访问令牌验证期限延长至60天。

public string exchange_access_token(string actoken) 
    { 
     var fb = new FacebookClient(); 
     dynamic result = fb.Get("oauth/access_token", new 
     { 
      client_id = "xxxxxxxxx", 
      client_secret = "xxxxxxxxxxxx", 
      grant_type = "fb_exchange_token", 
      fb_exchange_token = actoken 
     }); 

     return result; 
    } 

但是,如果你没有应用程序的细节,你不能做到这一点...

+0

我得到“此API调用需要有效的APP_ID”但我已经得到了从应用程序的我和APP_ID app_secret正在使用创建一个访问令牌。 – user3392322

+0

如果您有应用程序的有效标识,它不会抛出错误,它清楚地表明,这不是用于创建该特定访问标记的应用程序标识。尝试创建新的访问令牌并测试此代码... – yasmuru

+0

我已导航到https://developers.facebook.com/tools/explorer,并基于与应用程序ID和密钥相关的应用程序创建了一个令牌仍然得到这个 - 除非app_id是别的地方的另一个设置 – user3392322