저는 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,
];
당연히이 방법은 최선책이 아닙니다. 그래서, 왜 오류가 처음에 던져지고 있는지 알고 싶습니다.