在过去的几周里,我对这个主题进行了大量搜索,并尝试了我在这里找到的多个答案,这些答案要么不适用于新的 IOS SDK,要么不适用。所以我希望这不是一个重复的问题......
我们正在开发一个 IOS 应用程序,它使用 Facebook 登录 / IOS SDK 来登录应用程序。然后,用户创建一些显示在应用程序中供其他人查看的内容。也可以在浏览器中应用程序之外的 Web 上查看内容。希望在应用程序和网站上都使用 Facebook 评论社交插件。
我可以轻松地将评论社交插件添加到生成的网页,但希望评论也可以在应用程序内的 UIWebView 中使用。问题出在应用程序中,用户已经在应用程序中登录 Facebook,但是当我显示帖子的评论部分时,它要求用户重新登录。
我想通过某种方式将访问令牌或会话从 IOS SDK 传递到 Javascript 来避免这种情况。我可以成功地将访问令牌传递给我们服务器上的 PHP 脚本并进行 $facebook->getUser() 等调用,但似乎无法阻止评论社交插件中的重复登录,即使从我在下面写的 PHP 脚本。
任何帮助都会有很好的例子。
谢谢!安迪·P
<?php
require_once("facebook.php");
$config = array();
$config['appId'] = $_POST["appId"];
$config['secret'] = $_POST["secret"];
$config['fileUpload'] = false; // optional
$config['cookie'] = true;
$facebook = new Facebook($config);
$facebook->setAccessToken($_POST["accessToken"]);
$user = $facebook->getUser();
// note, I always get back a good $user here when I pass the accessToken from SDK
?>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : '<?php echo $_POST["appId"]?>', // App ID from the app dashboard
channelUrl : '//www.awplabs.com/channel.html', // Channel file for x-domain comms
status : true, // Check Facebook Login status
xfbml : true, // Look for social plugins on the page
cookie : true,
oauth:true
});
// Additional initialization code such as adding Event Listeners goes here
};
// Load the SDK asynchronously
(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/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<?php
echo "<div class=\"fb-comments\" data-href=\"https://awplabs.com/" . $_POST["pageId"] . "\" data-width=\"480\" data-num-posts=\"20\"></div>"
?>
</body>