我有一个使用Facebook登录的网络应用程序。我们希望在我们产品的个人资料页面上为这些用户呈现Facebook“关注”按钮。
然而,当用户在我们的应用程序身份验证时,使用我们从图表API获取的个人资料网址初始化时,“关注”按钮不会呈现。
我只能在按钮中使用的URL是他们的主Facebook帐户URL时才能使用它,我可以手动定位,但不能以编程方式定位。我们似乎无法通过图API或Javascript SDK访问此网址。
我期望使用用户图节点上“链接”边缘中给出的配置文件URL的示例标记(注意这使用了应用程序作用域用户ID):
<div class="fb-follow" data-href="https://www.facebook.com/app_scoped_user_id/812839870448/" data-layout="button" data-show-faces="false"></div>
使用非应用程序范围的用户名实际工作的示例标记:
<div class="fb-follow" data-href="https://www.facebook.com/yetanotherjosh" data-layout="button" data-show-faces="false"></div>
为已经对您的应用进行身份验证的用户呈现关注按钮似乎是一项简单的任务,我错过了什么?谢谢!
P.S。 - 如果您想知道JS SDK是否未正确加载,我们将通过此代码as suggested by the Facebook developer site在body标签内加载它(并且按钮可以使用某些URL,因此我不会认为SDK设置是问题):
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5&appId=REDACTED";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
答案 0 :(得分:1)
我想做同样的事情,我对php api也有同样的问题。
理论上你可以做以下事情:
对于第1步,您可以使用How to get final URL after following HTTP redirections in pure PHP?
但请务必添加用户代理:
bool List::SortSwap()
{
bool doswap = true;
ListElement *i =this-> head;
ListElement *prev =this-> head;
ListElement *b = i->next;
while (doswap= true) {
for (i; i != NULL; i = i->next) {
if (i != this-> head) {
prev->next = i;
}
if (i->value < b->value) {
swap(prev, i, b);
doswap = true;
}
}
doswap= false;
}
return doswap;
}
void List::swap(ListElement * prev, ListElement * a, ListElement * b)
{
prev->next = b;
b->next = a;
}
或者您将被重定向到/ unknownbrowser
我会自己尝试并发布结果(如果有的话)。
后来编辑:我试过了,facebook需要你登录才能获得最终的网址,这样理论上你可以再次启动登录流程来获取网址,但这可能会有点过头了。