我正在尝试在我的网站上添加Facebook Like Box社交插件(我从官方文档中获取了代码).
它工作正常,但只有我登录Facebook; 如果不是它只是显示
Facebook公开个人资料登录以查看此内容
我真的不明白这个问题,因为在其他网站上我建的一切都很好.
我在想这可能是一个页面设置.这是我<iframe>喜欢的Box的代码:
<iframe src="http://www.facebook.com/plugins/likebox.php?id=1331391XXXXXXXX&width=298&connections=10&stream=false&header=true" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:298px; height:290px">
Run Code Online (Sandbox Code Playgroud) 是否有特殊的网址可以分享到Facebook和Twitter手机?或者它们与网站上的相同?
运用
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
<a href="javascript:return false;" rel="nofollow" onclick="window.open('https://twitter.com/share?text=sometext&url=someurl', 'Twitter', 'toolbar=0,status=0,width=626,height=436')">Twitter</a>
Run Code Online (Sandbox Code Playgroud)
对于Twitter和
<script>
function fbs_click()
{
u='www.something';
t='title';
window.open('http://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
return false;
}
</script>
<a rel="nofollow" href="http://www.facebook.com/sharer/sharer.php?u=someurl" onclick="return fbs_click()" target="_blank" class="">Facebook</a>
Run Code Online (Sandbox Code Playgroud)
对于Facebook.
我希望得到我的墙的完整历史.但是我似乎在六月份的某个地方达到了极限.
我这样做多次调用:
SELECT created_time,message FROM stream WHERE source_id=MY_USER_ID LIMIT 50
SELECT created_time,message FROM stream WHERE source_id=MY_USER_ID LIMIT 51,100
Run Code Online (Sandbox Code Playgroud)
等等...
但我总是在墙上的最后(第一篇)帖子上结束.通过facebook.com我可以回去更长时间,所以Facebook显然拥有数据.
为什么我的帖子不老?还有另一种方法可以摧毁我的历史吗?
如果我调用这个:
FB.ui({
method: 'apprequests',
title: 'Who would you like to invite?',
message: 'Hello there'
});
Run Code Online (Sandbox Code Playgroud)
要求我选择接收者的请求对话框中的"预览"表明收件人将收到消息"Hello there".
但他们得到的只是:
'name' send you a request in 'app'
这并不能激励他们点击它.
还有其他人遇到这个问题吗?有解决方案吗
我正在尝试设置我的(iframe)Facebook应用程序以使用OAuth进行身份验证.我使用了Facebook 的python-sdk,但我对结果并不满意.
问题是,当我将从未访问过我的应用程序的用户重定向到登录页面时,我的iframe会显示一个丑陋的中间页面,例如以下页面:

如果用户点击"转到Facebook.com"链接,则会将其重定向到标准的"请求权限"页面.

有没有办法避免第一页并引导用户直接进入第二页?
对于尚未向我的应用程序授予任何权限的用户,首次访问时会出现此问题.
登录代码基于Python SDK中的OAuth示例:
class LoginHandler(BaseHandler):
def get(self):
verification_code = self.request.get("code")
args = dict(client_id=FACEBOOK_APP_ID, redirect_uri=self.request.path_url)
if self.request.get("code"):
args["client_secret"] = FACEBOOK_APP_SECRET
args["code"] = self.request.get("code")
raw_response = urllib.urlopen(
"https://graph.facebook.com/oauth/access_token?" +
urllib.urlencode(args)).read()
logging.debug("access_token raw response " + raw_response)
response = cgi.parse_qs(raw_response)
access_token = response["access_token"][-1]
# Download the user profile and cache a local instance of the
# basic profile info
graph = facebook.GraphAPI(access_token)
profile = graph.get_object("me")
user = User.get_by_key_name(profile["id"])
if not user:
user = User(key_name=str(profile["id"]),
id=str(profile["id"]),
name=profile["name"], …Run Code Online (Sandbox Code Playgroud) 我正在开发使用Facebook PHP SDK.
我想这样做,以便当用户退出Facebook时,它们也会自动退出我的网站.
我使用以下代码来检测会话,使用会话cookie:
$facebook->getUser();
Run Code Online (Sandbox Code Playgroud)
出于某种原因,该getUser()功能仍然返回用户的Facebook ID,即使他们已经在他们的网站上退出Facebook.
我是否首先使用其他功能检测会话?
在这里的官方文档示例中,以下是他们评论的摘录:
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of …Run Code Online (Sandbox Code Playgroud) 在Facebook应用程序中,我需要获取用户的日期范围事件以及每个事件的rsvp状态.
我可以很好地获得用户的事件,但此刻我正在查找每个事件的rsvp状态,并且应用程序正在为具有大量事件的人超时.
我以这种方式获取用户的事件:
$fql = "SELECT eid, name, start_time, end_time
FROM event
WHERE eid IN (SELECT eid
FROM event_member
WHERE uid = $user)
AND start_time > '$timestamp'
ORDER BY start_time";
Run Code Online (Sandbox Code Playgroud)
这部分工作正常.
这就是我如何获得每个事件的rsvp状态,一次一个:
$fql = "SELECT rsvp_status
FROM event_member
WHERE uid = $user
AND eid = '$event_id'";
Run Code Online (Sandbox Code Playgroud)
这也可以在逐个事件的基础上正常工作,但是当用户有很多事件时,应用页面会超时,因为每个事件都必须每次都被查找.
使用普通的SQL,我可以通过连接轻松完成此操作,但在FQL中不允许使用连接.
一种可能的解决方案是循环执行每个rsvp_status的可能性,如下所示:
$fql = "SELECT eid, name, start_time, end_time
FROM event
WHERE eid IN (SELECT eid
FROM event_member
WHERE uid = $user
and rsvp_status = 'attending')
AND start_time > '$timestamp'
ORDER BY start_time"; …Run Code Online (Sandbox Code Playgroud) 我从Facebook for Facebooksites的Facebook开发者页面复制了下面的HTML,并用我的应用程序ID替换了APPID.我把这个页面放在我的开发Web服务器上.如果我导航到该页面,它会使登录按钮正常.但是点击登录按钮,它会打开Facebook登录页面,上面写着"发生错误.请稍后再试."
我必须遗漏一些基本的东西.有任何想法吗?
<html>
<head>
<title>My Facebook Login Page</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'APPID',
status : true,
cookie : true,
xfbml : true,
oauth : true // removed a comma after 'true' as it generates a script error
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<div class="fb-login-button">Login with Facebook</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
进一步调查表明,它在Chrome,Firefox和Safari中运行良好,在IE9中失败. …
在我的网站上,对于每个博客条目,我都有一个像facebook一样的按钮.所以在索引上,有多个(目前超过10个)像按钮一样.
这些按钮使我的页面使用起来有点麻烦.总页面时间变为几秒钟,并且在加载时加载时(即使加载了所有内容)它都是滞后/跳跃.除了没有在索引上显示类似按钮之外,还有其他解决方法吗?(页面上的单个按钮产生的延迟可忽略不计)
作为参考,我的网站位于http://lastyearswishes.com.在firebug中,您可以看到页面加载时间是20秒,其中大约200毫秒与我的实际网站相关联.每个facebook like按钮似乎都会执行三个单独的不可缓存的唯一请求.
事后的想法:现在(差不多2年后)我决定放弃facebook.即使使用异步代码,它仍然会导致页面渲染时间显着延迟.它还使用一些stange javascript来搞砸我的布局.当放入推特按钮时,我的布局立即看起来应该是这样的(具有对齐和浮动的东西,Facebook做了.我永远不会使用保证金或任何东西让Facebook按照我想要的排队)
这里我使用的是Facebook登录按钮插件和javascript sdk
我可以通过使用上面的方式成功登录和注销.
当第一次用户通过身份验证过程时,我需要存储用户基本信息,即Facebook登录名,电子邮件在我的数据库中.
请建议我如何做到这一点.
<p><fb:login-button autologoutlink="true"></fb:login-button></p>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function () {
FB.init({ appId: '123456', status: true, cookie: true,
xfbml: true
});
};
(function () {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
} ());
</script>
Run Code Online (Sandbox Code Playgroud) facebook ×10
facebook-fql ×2
apprequests ×1
dialog ×1
logged ×1
login ×1
mobile ×1
oauth ×1
share ×1
twitter ×1