我想知道以下是否可行,因为在阅读FB的文档后我不清楚。这是场景:
网站有撰写文章的作者。作者希望将这些文章的链接分享给有影响力的人(“影响者”)所拥有的FB页面。影响者希望允许网站自动将文章链接发布到他们的页面。网站作者不是FB用户,因此不能要求登录FB。相反,文章链接需要通过网站的FB应用程序共享。这将发生在服务器端。
我知道网站的FB应用程序需要获得发布到影响者页面的权限,但是我不能从网站作者那里请求客户端的这个权限,因为他们不是FB用户。我们可以要求有影响力的人进行一次性设置以允许FB App权限发布到他们的页面,但我担心的是,页面访问令牌似乎会在几个小时后过期,根据文档。
我真正想要的是影响者能够为FB应用程序授予永久访问权限以在其页面上共享链接。这可能吗?
我不一定在寻找代码,只是建议我需要在何时何地进行此设置时执行哪些操作。谢谢!
答案 0 :(得分:0)
如果您想扩展页面访问令牌,以供参考:
public async Task<string> ExtendAccessTokenAsync(string accessToken)
{
dynamic response = await ExtendAccessTokenAsync<dynamic>(accessToken);
return response.access_token;
}
private async Task<T> ExtendAccessTokenAsync<T>(string accessToken)
{
var response = await httpClient.GetAsync($"oauth/access_token?grant_type=fb_exchange_token&client_id={options.AppId}&client_secret={options.AppSecret}&fb_exchange_token={accessToken}");
if (!response.IsSuccessStatusCode)
{
return default(T);
}
var result = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<T>(result);
}
T
可以是代表返回对象的类(有关属性,请参见FB文档),或者在我的情况下,我只对dynamic
使用T
,因为我只想使用{ {1}}属性。