2012-03-10 99 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已被弃用,并将在几周内被删除,因此您不应该使用它创建新的应用程序。