2010-02-02 3 views
0

도와주세요! 나는 며칠 동안이 실수에 씨름하고 있었고 나의 삶은 그것을 이해할 수 없다. 나는 facebook 연결을 사용하고 API 메소드 인 users_getInfo를 사용하여 "contact_email"속성을 가져 오는 중입니다.facebook connect api "문자열 오프셋을 배열로 사용할 수 없습니다"오류

문제는이 PHP 파일을 실행할 때 "문자열 오프셋을 배열로 사용할 수 없습니다 ..."입니다. 이 오류는 특히 다음 코드 행을 참조합니다. $ firstName = $ user_details [0] [ 'contact_email'];

user_getInfo 메서드가 결과를 반환하지 않기 때문이라고 생각합니다. 그러나이 모든 것에 대한 가장 우스 꽝스러운 부분은 다음과 같은 코드를 수십 번 연속적으로 실행할 수 있다는 것입니다. 위의 오류는 있지만 임의로 코드를 변경하지 않고 임의로 변경하면 갑자기이 오류가 발생하여 몇 차례 오류가 발생하고 코드를 변경하지 않고도 다시 성공적으로 실행을 시작합니다.

이 이상한 동작은 가져 오는 특성 (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'];

답변

1

facebook php client API를 사용하면서도 오류가 발생했지만 사용자가 friends_areFriends PHP 메소드를 사용하여 친구인지 확인하는 것과 관련된 오류가있었습니다.

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

$ 결과를 할당 할 때 "배열로 문자열 오프셋을 사용할 수 없습니다."및 aparently 위의 friends_areFriends 메서드가 실패한 경우이 오류가 발생합니다. 내 솔루션은 그 코드를 실행하고 php 메서드 is_array()를 사용하여 어레이 였는지 아닌지 확인하기 위해 $ answer를 확인하고 그렇지 않은 경우 다시 메서드 호출을 실행하는 for 루프를 만드는 것이 었습니다. 내 루프는 실패하기 전에 10 번 시도했습니다. 결국,이 수표는 페이스 북 애플리케이션의 성능을 심각하게 저하 시켰습니다. 대신, friends_areFriends api call alltogather를 제거하고 내 페이스 북 앱 성능이 좋고 빠름.

결과가 배열이 아닌 경우 메서드가 자체적으로 다시 시도 할 수 있도록 유사한 기능을 구현할 수 있습니다. 내가 생각하는 문제는 페이스 북쪽에있다. 때로는 범람하고 요청이 성공적으로 완료되지 않는다. 나는 5 회 이상 재 시도하지 말 것을 권한다. 왜냐하면 만일 당신이 영원히 반복한다면, 페이스 북 API를 사용하지 못하도록 막을 것이기 때문에 조심해야한다.