Asp.net Facebook应用程序通过应用程序名(非私人用户名)发布到用户墙上
我是facebook环境的新手,我正在开发一个应用程序,在某些情况下,它应该通过在用户的墙上书写来通知用户 但是,墙上的这条消息应该显示为应用程序发布的消息,而不是我发布的消息 我尝试了fbApp.Post、fbApp.Api调用,但它们都显示我是发送者 我尝试了以下方法:Asp.net Facebook应用程序通过应用程序名(非私人用户名)发布到用户墙上,asp.net,facebook-c#-sdk,Asp.net,Facebook C# Sdk,我是facebook环境的新手,我正在开发一个应用程序,在某些情况下,它应该通过在用户的墙上书写来通知用户 但是,墙上的这条消息应该显示为应用程序发布的消息,而不是我发布的消息 我尝试了fbApp.Post、fbApp.Api调用,但它们都显示我是发送者 我尝试了以下方法: string appAccessTokenPath = String.Format("https://graph.facebook.com/oauth/access_token?grant_type=client_crede
string appAccessTokenPath = String.Format("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={0}&client_secret={1}", FacebookSettings.Current.AppId, FacebookSettings.Current.AppSecret);
string appAccessToken = fbApp.Get(appAccessTokenPath).ToString();
FacebookApp myAppFb = new FacebookApp(appAccessToken);
But I am taking the following exception at call fbApp.Get(....:
Newtonsoft.Json.JsonReaderException was unhandled by user code
Message=Unexpected character encountered while parsing value: a. Line 1, position 1.
Source=Newtonsoft.Json
LineNumber=1
LinePosition=1
StackTrace:
at Newtonsoft.Json.JsonTextReader.ParseValue(Char currentChar) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 585
at Newtonsoft.Json.JsonTextReader.ReadInternal() in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 328
at Newtonsoft.Json.JsonTextReader.Read() in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 279
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 114
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonSerializer.cs:line 421
at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonSerializer.cs:line 413
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonConvert.cs:line 707
at Facebook.JsonSerializer.DeserializeObject(String json, Type type) in d:\Projects\facebooksdk\Source\Facebook\JsonSerializer.cs:line 92
at Facebook.JsonSerializer.DeserializeObject(String json) in d:\Projects\facebooksdk\Source\Facebook\JsonSerializer.cs:line 73
at Facebook.FacebookApp.MakeRequest(HttpMethod httpMethod, Uri requestUrl, Byte[] postData, String contentType, Type resultType, Boolean restApi) in d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs:line 1004
at Facebook.FacebookApp.<>c__DisplayClassb.<OAuthRequest>b__a() in d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs:line 566
at Facebook.FacebookApp.WithMirrorRetry[TReturn](Func`1 body) in d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs:line 752
at Facebook.FacebookApp.OAuthRequest(Uri uri, IDictionary`2 parameters, HttpMethod httpMethod, Type resultType, Boolean restApi) in d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs:line 566
at Facebook.FacebookApp.Graph(String path, IDictionary`2 parameters, HttpMethod httpMethod, Type resultType) in d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs:line 550
at Facebook.FacebookAppBase.Api(String path, IDictionary`2 parameters, Type resultType, HttpMethod httpMethod) in d:\Projects\facebooksdk\Source\Facebook\FacebookAppBase.cs:line 439
at Facebook.FacebookAppBase.Get(String path) in d:\Projects\facebooksdk\Source\Facebook\FacebookAppBase.cs:line 473
at GizemliHayran.Outbox.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\TUNC TOROSDAGLI\my documents\visual studio 2010\Projects\GizemliHayran\GizemliHayran\Outbox.aspx.cs:line 44
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
string appAccessTokenPath=string.Format(“https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={0}&client_secret={1},FacebookSettings.Current.AppId,FacebookSettings.Current.AppSecret);
字符串appAccessToken=fbApp.Get(appAccessTokenPath.ToString();
FacebookApp myAppFb=新的FacebookApp(appAccessToken);
但是我在调用fbApp.Get(…)时遇到了以下例外情况:
用户代码未处理Newtonsoft.Json.JsonReaderException
Message=解析值时遇到意外字符:a.第1行,位置1。
Source=Newtonsoft.Json
行号=1
LinePosition=1
堆栈跟踪:
位于d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs中的Newtonsoft.Json.JsonTextReader.ParseValue(Char currentChar):第585行
位于d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs中的Newtonsoft.Json.JsonTextReader.ReadInternal():第328行
位于d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs中的Newtonsoft.Json.JsonTextReader.Read():第279行
在d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.反序列化(JsonReader,类型objectType)中的Newtonsoft.Json.Serialization.JsonSerializerInternalReader.反序列化(JsonReader,类型objectType):第114行
位于d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonSerializer.cs中的Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader阅读器,类型objectType):第421行
在d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonSerializer.cs中的Newtonsoft.Json.JsonSerializer.反序列化(JsonReader阅读器,类型objectType):第413行
在d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonConvert.cs中的Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值、类型、JsonSerializerSettings设置)处:第707行
在d:\Projects\facebooksdk\Source\Facebook\JsonSerializer.cs中的Facebook.JsonSerializer.DeserializeObject(字符串json,类型Type)处:第92行
在d:\Projects\facebooksdk\Source\Facebook\JsonSerializer.cs中的Facebook.JsonSerializer.反序列化对象(字符串json)处:第73行
在d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs中的Facebook.FacebookApp.MakeRequest(HttpMethod-HttpMethod,urirequesturl,Byte[]postData,String contentType,Type resultType,Boolean restApi)中
在d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs中的Facebook.FacebookApp.c\u显示classb.b\u a():第566行
在d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs中的Facebook.FacebookApp.WithMirrorRetry[TReturn](Func`1 body)处:第752行
在d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs中的Facebook.FacebookApp.OAuthRequest(Uri Uri,IDictionary`2参数,HttpMethod HttpMethod,Type resultType,Boolean restApi)中:第566行
在d:\Projects\facebooksdk\Source\Facebook\FacebookApp.cs中的Facebook.Facebook.app.Graph(字符串路径,IDictionary`2参数,HttpMethod HttpMethod,键入resultType)处:第550行
在d:\Projects\facebooksdk\Source\Facebook\FacebookAppBase.Api(字符串路径,IDictionary`2参数,键入resultType,HttpMethod-HttpMethod)中的d:\Projects\Facebook\FacebookAppBase.cs:第439行
在d:\Projects\facebooksdk\Source\Facebook\FacebookAppBase.cs中的Facebook.FacebookAppBase.Get(字符串路径):第473行
在C:\Documents and Settings\TUNC TOROSDAGLI\my Documents\visual studio 2010\Projects\GizemliHayran\GizemliHayran\Outbox.aspx.cs中的GizemliHayran.Outbox.Page\u加载(对象发送方,事件参数e):第44行
位于System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp、对象o、对象t、事件参数e)
在System.Web.Util.CallEventHandlerDelegateProxy.Callback(对象发送方,EventArgs e)
在System.Web.UI.Control.OnLoad(EventArgs e)中
在System.Web.UI.Control.LoadRecursive()中
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
内部异常:
您必须获取与应用程序相关联的访问令牌,而不是用户。您可以在此处看到如何操作:
获得应用程序的访问令牌后,只需使用相同的方法发布到墙上,但手动将访问令牌设置到应用程序
访问令牌始终代表Facebook API上操作的“参与者”。因此,如果您以个人身份发布,则使用他们的访问令牌;如果您以应用程序形式发布,则必须使用应用程序的令牌。您必须获取与应用程序关联的访问令牌,而不是用户。您可以在此处看到如何做到这一点: 获得应用程序的访问令牌后,只需使用相同的方法发布到墙上,但手动将访问令牌设置到应用程序
访问令牌始终代表Facebook API上操作的“参与者”。因此,如果您以个人身份发布,您将使用他们的访问令牌,如果您以应用程序的形式发布,则必须使用应用程序的令牌。我建议您使用codeplex的Facebook C#sdk。下面是一个完整的测试代码,供您开始使用
我建议您使用codeplex的facebook C#sdk。下面是一个完整的测试代码,可以从它开始