【问题标题】:facebook connect api "Cannot use string offset as an array in" errorfacebook connect api“不能使用字符串偏移作为数组”错误
【发布时间】:2010-02-02 20:13:46
【问题描述】:

请帮忙!几天来我一直在努力解决这个错误,但我终其一生都无法弄清楚。我正在使用 facebook connect 并使用他们的 api 方法 users_getInfo 获取“contact_email”属性。

问题是当我执行这个 PHP 文件时,我得到这个错误:“不能使用字符串偏移量作为数组...”。这个错误特指这行代码:$firstName=$user_details[0]['contact_email'];

我在想这是因为 user_getInfo 方法没有返回任何结果......然而,关于这一切最可笑的部分是,我可以连续执行几十次下面的代码而没有上面的错误,BUT THEN随机不改变任何代码,我会突然遇到这个错误,在这种情况下它会开始给我一个错误几十次,然后再次没有任何代码改变,再次开始成功执行。

无论我获取的属性如何(contact_email、first_name、last_name 等),都会发生这种奇怪的行为。我正在运行 php 5.2.11。有什么我遗漏的吗??

请帮忙!

include_once 'site/fbconnect/config.php'; //定义了 $api_key 和 $secret。 include_once 'site/facebook-platform/client/facebook.php'; 全局 $api_key,$secret; $fb=新 Facebook($api_key,$secret); $fb->require_login(); $fb_user=$fb->get_loggedin_user();

$user_details=$fb->api_client->users_getInfo($fb_user,array('last_name','first_name','contact_email'));
$email=$user_details[0]['contact_email']; $firstName=$user_details[0]['first_name']; $lastName=$user_details[0]['last_name'];

【问题讨论】:

    标签: facebook


    【解决方案1】:

    使用 facebook php 客户端 API,我也收到了该错误,但我的错误与使用 friends_areFriends php 方法检查用户是否是朋友有关。

    //$results_array = $facebook->api_client->friends_areFriends($fb_user, $selected_friend_uid); //$answer = $results_array[0]['are_friends'];

    当我分配 $result 时,我会得到这个错误,“不能将字符串偏移量用作数组”,显然上面的 friends_areFriends 方法失败了很多。我的解决方案是创建一个运行该代码的 for 循环,然后使用 php 方法 is_array() 检查 $answer 以查看它是否是一个数组,如果不是,则再次执行该方法调用。在让它失败之前,我的循环尝试了 10 次。最后,这项检查严重降低了我的 facebook 应用程序的性能。相反,我删除了 friends_areFriends api 调用 alltogather,我的 facebook 应用程序性能又好又快了。

    如果结果不是数组,您可能可以实现类似的功能,允许该方法自行重试。我认为问题出在 facebook 方面,有时它们被淹没并且请求无法成功完成。不过我提醒您不要重试超过 5 次,因为如果您进行永久循环,请放心,他们会禁止您使用 Facebook API 进行泛滥,所以要小心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多