发布到Facebook Graph Api很慢

5
我正在创建一个新的Facebook应用程序,它有一些附加操作,比如在Spotify上“听 xxx”。问题是这个调用需要大约6-7秒的时间,这非常长。下面是我的代码和curl_getinfo的结果。这个速度正常吗?
    $attachment = array(
        'access_token' => $access_token,
        'album' => 'sergeant peppers',
    );

    $opts = array(
        CURLOPT_CONNECTTIMEOUT => 10,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_USERAGENT => 'facebook-php-3.1',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $attachment,
        CURLOPT_URL => 'https://graph.facebook.com/me/APPNAME:listening'
    );
    $ch = curl_init();
    curl_setopt_array($ch, $opts);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);

curl_getinfo的结果:
[url] => https://graph.facebook.com/me/APPNAME:listening
[content_type] => text/javascript; charset=UTF-8
[http_code] => 400
[header_size] => 557
[request_size] => 238
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 6.002449
[namelookup_time] => 0.024892
[connect_time] => 0.179322
[pretransfer_time] => 0.77444
[size_upload] => 362
[size_download] => 212
[speed_download] => 35
[speed_upload] => 60
[download_content_length] => 212
[upload_content_length] => 362
[starttransfer_time] => 1.775707
[redirect_time] => 0
[certinfo] => Array
    (
    )

[redirect_url] => 
2个回答

5

你收到了一个 HTTP 400 错误(错误请求),这表示出现了一些问题。如果你的请求正确,会更快地得到响应。

这篇帖子:php cURL error in facebook api 表明你应该移除 'CURLOPT_POST => true'。 如果你仍然遇到问题,我建议添加 'CURLOPT_VERIFYPEER => false'。


+1. 很好的发现!我在问题陈述中完全忽略了那个。 - MrGomez
谢谢,结果我需要使用扩展的OAuth对话框,并且offline_access已经被弃用了。我自己完全忽略了400。 - bluedaniel
2
你们修复后的响应时间如何? - jornare

0

不是的。这个答案更详细地讨论了Facebook Graph API的预期时序,尽管它的问题诊断对你的问题不适用。

发现瓶颈的最佳方法是网络诊断,比如traceroutedig和cURL的性能分析功能(就像你在这里展示的一样)。如果您在不同的地区有同行,也可以尝试从该位置进行性能分析以查看变化。

祝你好运。这是非常专业的信息,但应该足以让你入门。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接