我一直在使用facebook api在Facebook页面上分享帖子作为facebook app。我创建了facebook app。 该帖子也得到了共享,但问题是,它没有被发布为Facebook应用程序。相反,它要求用户登录,然后它作为用户共享帖子。关于我如何分享Facebook Facebook应用程序的任何帮助将不胜感激,因为我已经尝试了很长时间。 Thanx提前啦。 我一直使用的代码如下。
using Facebook;
protected void CheckAuthorization()
{
string authorizationCode = Request.QueryString["code"];
string access_token = Facebook_GetAccessToken(authorizationCode);
FacebookShare(access_token);
}
private string Facebook_GetAccessToken(string pAuthorizationCode)
{
string urlGetAccessToken = "https://graph.facebook.com/oauth/access_token";
urlGetAccessToken += "?client_id=my app id";
urlGetAccessToken += "&client_secret=app secret";
urlGetAccessToken += "&redirect_uri=" + Facebook_GetRedirectUri();
urlGetAccessToken += "&code=" + pAuthorizationCode;
string responseData = RequestResponse(urlGetAccessToken);
if (responseData == "")
{
return "";
}
NameValueCollection qs = HttpUtility.ParseQueryString(responseData);
string access_token = qs["access_token"] == null ? "" : qs["access_token"];
return access_token;
}
protected void FacebookShare(string token)
{
if (token != null)
{
Int64 transactionid = Convert.ToInt64(Cache["transactionid"]);
string app_id = "my app id";
string app_secret = "app secret";
string scope = "offline_access,read_stream,publish_actions,publish_stream,manage_pages,status_update";
dynamic parameters = new ExpandoObject();
parameters.link = "my website link";
parameters.name = "my project name";
parameters.picture= "my website logo";
var client = new FacebookClient(token);
client.Post("/1374775846180409/feed", parameters); // this is my facebook page id where I want to share post.
Response.Cookies["transaction"].Expires = DateTime.Now;
}
else
{
}
}
关于上述代码,我成功获得了Facebook授权代码。
答案 0 :(得分:5)
您只能要求已登录您应用的用户在Facebook上发帖,因此不允许发布应用。
您将需要一个页面访问令牌作为页面发布,该页面有权修改属于Facebook页面的数据。要获取页面访问令牌,您需要首先获取用户访问令牌,您的用户必须登录到您的应用程序并要求manage_pages
权限范围。接下来,您可以获取/me/accounts
,它将为您管理的每个页面返回一个页面访问令牌。
使用离线访问或未登录无法完成此操作。