1

저는 Facebook PHP SDK에 초보자입니다. 아래의 스택 추적을 이해하는 데 문제가 있습니다. 어디에서 오류를 찾아야합니까?문제 이해 Facebook 미확인 예외

Facebook 예약 된 게시물이 성공적으로 처리되지만이 오류로 인해 사용자 환경이 좋지 않지만 내 프로그램의 모든 항목이 정상적으로 작동합니다. 거기에없는 것을 처리하려고하는 것처럼 보입니다.

foreach($esdarr as $key => $event_start_datetime){$sched_time = strtotime($event_start_datetime)- 18000; 
    $event_end_datetime = $eedarr[$key]; 
    $requestScheduleEvent = $fb->post('/'.$band_page_id.'/feed', ['message' => $band_name.' is playing today at '.$venue_name.' '.date('(l), g:ia', strtotime($event_start_datetime)), 'published'=>false, 'scheduled_publish_time'=>$sched_time], $pageToken); 
    $batch[$key]=$requestScheduleEvent; 
    } 

이는 다음과 같습니다

$responses = $fb->sendBatchRequest(($batch), $this->session->userdata('fb_access_token')); 

$ 배치는 다음과 같이 정의한다 : 코드의

마지막 줄 (예약 된 게시물 내 페이스 북 테스트 계정에 표시하기 때문에 내가 아는)입니다 실행되는 모두 공용 함수 add()를 사용하는 CI 컨트롤러 (event.php) 내에 있습니다. 그럼 난이 오류 얻을 : (즉이며, CI 구조 내에서 올바른 URL로 페이지를 리디렉션) 내가 FacebookBatchRequest.php의 라인 # 85를 변경하는 경우 다음과 같이

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Argument for add() must be of type array or FacebookRequest.' in /home/my_user/public_html/development/application/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php:85 Stack trace: 
#0 /home/my_user/public_html/development/application/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php(78): Facebook\FacebookBatchRequest->add(Object(Facebook\FacebookResponse), 0) 
#1 /home/my_user/public_html/development/application/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php(61): Facebook\FacebookBatchRequest->add(Array) 
#2 /home/my_user/public_html/development/application/vendor/facebook/php-sdk-v4/src/Facebook/Facebook.php(492): Facebook\FacebookBatchRequest->__construct(Object(Facebook\FacebookApp), Array, 'EAAYzEGW0ZAsoBA...', 'v2.7') 
#3 /home/my_user/public_html/development/application/controllers/user/event.php(777): Facebook\Facebook->sendBatchRequest(Array, 'EAAYzEGW0ZAsoBA...') 
#4 [internal function]: Event->add in /home/my_user/public_html/development/application/vendor/facebook/php-sdk-v4/src/Facebook/FacebookBatchRequest.php on line 85 

을, 모든 것이 잘 작동하는 것 같다 :

public function add($request, $name = null) 
{ 
    if (is_array($request)) { 
     foreach ($request as $key => $req) { 
      $this->add($req, $key); 
     } 

     return $this; 
    } 

    if (!$request instanceof FacebookRequest) { 
     ***redirect('user/event');*** 
     throw new \InvalidArgumentException('Argument for add() must be of type array or FacebookRequest.'); 
    } 

    $this->addFallbackDefaults($request); 
    $requestToAdd = [ 
     'name' => $name, 
     'request' => $request, 
    ]; 

당연히이 방법은 최선책이 아닙니다. 그래서, 왜 오류가 처음에 던져지고 있는지 알고 싶습니다.

답변

0

좋아, 결국 내 부분에 배치 프로세스를 잘못 사용하는 결과가 발생했습니다.

$requestScheduleEvent = $fb->post('/'.$band_page_id.'/feed', ['message' => $band_name.' is playing today at '.$venue_name.' '.date('(l), g:ia', strtotime($event_start_datetime)), 'published'=>false, 'scheduled_publish_time'=>$sched_time], $pageToken); 

요청 방법을 사용하는 데 필요한 :

$batch[$key] = $fb->request('POST', '/'.$band_page_id.'/feed', ['message' => $band_name.' is playing today at '.$venue_name.' '.date('(l), g:ia', strtotime($event_start_datetime)), 'published'=>false, 'scheduled_publish_time'=>$sched_time], $pageToken); 
0

프로그램에 add()를 정의하고 add()도 SDK에 내장되어 있으면 작동하지 않습니다. 다른 이름을 사용해보십시오.

이것이 문제가되지 않는다면 코드를 게시 할 수 있습니까? 아마도 우리 중 하나가 그것을 찾을 수 있습니다.

어떤 언어를 사용하고 있습니까? 아마도 구문 오류가있을 것입니다.

나는 이것이 어떤 식 으로든 도움이되기를 바랍니다!