首页 文章

为通过Facebook登录进行操作的用户呈现Facebook关注按钮?

提问于
浏览
0

我有一个使用Facebook登录的网络应用程序 . 我们想在我们产品的 Profiles 页面上为这些用户呈现Facebook“关注”按钮 .

但是,当用户在我们的应用程序身份验证时,使用我们从图形API获取的配置文件URL初始化时,“关注”按钮不会呈现 .

我只能在按钮中使用的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>

为已经对您的应用进行身份验证的用户呈现关注按钮似乎是一项非常简单的任务,我错过了什么?谢谢!

附: - 如果你想知道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>

1 回答

  • 1

    我想做同样的事情我和php api有同样的问题 .

    从理论上讲,你可以做以下事情:

    • 有一个php脚本跟随https://www.facebook.com/1234 url到它的终点:https://www.facebook.com/username

    • 步骤1非常慢,因此您应该只执行一次,也可以使用cron作业,而不是在用户登录时即时 . 然后将该URL存储在您的数据库中 .

    • 使用存储的URL生成“关注”按钮 .

    对于第1步,您可以使用How to get final URL after following HTTP redirections in pure PHP?

    但请确保添加用户代理:

    $request .= 'User-Agent: Safari/537.16\r\n';
    

    否则你将被重定向到/ unknownbrowser

    我会自己尝试并发布结果,如果有的话 .

    后来编辑:我试过了,facebook需要你登录才能获得最终的网址,所以你可以再次理论上启动登录流程来获取网址,但这可能是矫枉过正的 .

相关问题