2014-03-07 209 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