通过PHP在亚历山大队列中将卷曲自定义动作发布到Facebook

问题描述:

我已经成功创建了自定义的Facebook开放图形动作,并且已经能够从我的Facebook应用发布它。但是,发布Facebook API会降低我的用户体验,所以我创建了一个队列表,我想从用户体验之外的cron执行。通过PHP在亚历山大队列中将卷曲自定义动作发布到Facebook

表包含与完整的职位要求的字段,这样的事情:

https://graph.facebook.com/me/mynamespace:my_action?custom_item=https://www.mysite .com/thefolder/&access_token=XXXXXXX 

所以我的cron工人将运行每2分钟..如何让PHP运行卷曲(或东西)以上是异步的,即不是等待Facebook的回应,所以我可以在一分钟内通过说100(我应该如此幸运)?

哦和b)我应该将"/me/"替换为fb用户ID吗?

请注意,我不是Linux的人。谢谢!

不过,Facebook的API要发布,正在降低我的用户体验下降

首先,它是如何减慢它?您是否正在对API进行服务器端或客户端调用?

如果你在客户端做它,它已经是异步的,所以不应该太慢,会影响用户体验。

如何让PHP在上面异步运行CURL(或其他),即不等待Facebook响应,所以我可以在一分钟内通过说100(我应该如此幸运)?

我还没有使用卷曲“异步”还,但一个快速谷歌搜索建议,你可以尝试将其设置CURLOPT_TIMEOUT或达最新系统甚至CURLOPT_TIMEOUT_MS为1的值,但我可以”告诉你这将是多么可靠;如果Facebook的API将正确地进行处理,如果客户端(你在这种情况下,服务器)迅速关闭连接等

我不知道,如果由cron这样做,这是一个好主意。

如果你不能做的API调用的客户端,如上面所建议的,因为你需要你的应用程序的访问令牌被用于发送要发布你的行为,那么我建议你还是做服务器端,但不是通过cron,而是由用户自己触发,通过将IMG或SCRIPT元素嵌入到页面中(如果将用户引导至新页面或创建并放入DOM客户端,通过JavaScript),它的源代码被设置为发布操作的PHP脚本的地址。如果您使用SCRIPT元素,您甚至可以控制操作的结果并对客户端做出反应,只需在响应中返回适当的JavaScript代码即可。

我认为这种方法不应该显着减慢用户体验,并且我猜测它可能比cron调用的脚本在数百个“异步”cURL请求中更可靠。

哦和b)我应该用“fb”用户标识替换“/ me /”吗?

通过调用中提供的用户访问令牌,API可以自行计算出来。

但是,如果你正在使用的应用程序访问令牌,那么你必须使用用户ID,因为否则的话API无法知道哪个用户在通话的意思的方式。

+0

感谢您的超级洞察力。这很慢,因为我使用php sdk api,它为我的页面载入增加了大约10秒,这会影响用户体验。 img脚本的想法是激发脚本的一种有趣方式,即使用户点击另一个页面,仍然会生成帖子/请求,因此即使我们没有得到响应,也没有关系操作已发布。谢谢! –

您应该将用户会话存储在某处(db等)。然后,只要用户会话处于活动状态,您就可以通过cron worker发送消息。在发布操作时使用该标记。 (你应该只使用属于用户的令牌:))

b)我应该用“fb user”代替“/ me /”吗?

那么你可以使用/ ME或/ ID

为了使aynbchronus HTTP调用,看到这个帖子 Asynchronous PHP calls?

但有速率限制,这将可以发布在此基础上阻止你条件(每600秒600元话费,每IP令牌&是在哪里,他们阻止你)
来源:http://www.quora.com/Whats-the-Facebook-Open-Graph-API-rate-limit

+0

这是真正有用的,谢谢你。我曾尝试使用该片段。那么我会再打一场,我认为我的参数没有正确分开。谢谢。 –