2012-03-10 80 views
0

我正在使用v6 C#.Net Facebook SDK(博客可在http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-First-Facebook-Application-v6.aspx找到)。
我需要從用戶以及稍後(不同會話)的後期圖像向該用戶接收對offline_access的訪問權限。
我也嘗試上傳圖片到某個頁面(我的),但不能。
我正在爲用戶提供一個簡單的對話框,並接受他允許我請求的所有憑據「user_about_me,read_stream,user_online_presence,friends_online_presence,offline_access,publish_stream,photo_upload」 比在不同的會話中(重新啓動我的應用程序) (使用的WebRequest作爲跟隨:)Facebook SDK .Net(C#)離線上傳圖片

var url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials",AppId, AppSecret); 
WebRequest request = WebRequest.Create(url); 
request.Method = "GET"; 
request.ContentType = "application/x-www-form-urlencoded"; 
HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse(); 
var myString = (new StreamReader(webResponse.GetResponseStream()).ReadToEnd()); 
myString = myString.Replace("access_token=", ""); 

但是試圖訪問用戶,先前已經給了一個offline_access憑據時,使用訪問令牌我得到異常:,我使用下面的方法創建的訪問令牌拋出:
(OAuthException)訪問令牌是請求此資源
的要求很簡單要求:

var fb = new FacebookClient(myString); 
var result = fb.Get("/{0}/permissions", userThatGaveCredentials); 

是否有可能實現我所期待的,如果是這樣,我究竟做錯了什麼?

回答

0

您的代碼第二次請求訪問令牌不起作用。沒有理由這樣做(並且它總是無論如何都不會工作)。您應該只在第一次使用日誌時保存訪問令牌。

您收到的錯誤是因爲當您將myString傳遞給FacebookClient時,您的myString爲null,因此您沒有提供訪問令牌的錯誤。

此外,您應該注意offline_access已被棄用,並將在幾周內被刪除,因此您不應該使用它創建新的應用程序。