API объявлений Facebook Неверный токен доступа OAuth

В настоящее время мы пытаемся настроить рекламный API в Laravel. Это были дни, но вызов getAdAccounts() всегда приводит к "Неверный токен доступа OAuth". исключение. Однако тот же токен доступа при использовании в Graph Explorer API работает так же хорошо для конечной точки adaccounts

Вот код -

try {
        $fb = new Facebook([
                env('FACEBOOK_APP_ID'), // App ID
                env('FACEBOOK_APP_SECRET'),
                env('FACEBOOK_GRAPH_VERSION')
                ]);

        $helper = $fb->getRedirectLoginHelper();
        $accessToken = $helper->getAccessToken();

        if (!isset($_SESSION['facebook_access_token'])) {
            $_SESSION['facebook_access_token'] = null;
        }

        if (!$_SESSION['facebook_access_token']) {
            $helper = $fb->getRedirectLoginHelper();
            try {
                $_SESSION['facebook_access_token'] = (string) $helper->getAccessToken();

            } catch(FacebookResponseException $e) {
                // When Graph returns an error
                echo 'Graph returned an error: ' . $e->getMessage();
                exit;
            } catch(FacebookSDKException $e) {
                // When validation fails or other local issues
                echo 'Facebook SDK returned an error: ' . $e->getMessage();
                exit;
            }
        }

        if ($_SESSION['facebook_access_token']) {
            echo "You are logged in!";

            Api::init(
            env('FACEBOOK_APP_ID'), // App ID
            env('FACEBOOK_APP_SECRET'),
            $_SESSION['facebook_access_token']
            );
            echo $_SESSION['facebook_access_token'];
            $me = new AdUser('me');
            //dd($me);
            $my_adaccount = $me->getAdAccounts();
            dd($my_adaccount);

        } else {
            $permissions = ['ads_management', 'user_friends'];
            $loginUrl = $helper->getLoginUrl('http://localhost:8000/facebookads', $permissions);
            echo '<a href="' . $loginUrl . '">Log in with Facebook</a>';
        }
    }
    catch(FacebookResponseException $e) {
        // When Graph returns an error
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }
    catch(\Exception $e){

        dd($e);
    }

1 ответ

Api::init(APP_ID,APP_SECRET, ACCESS_TOKEN); ACCESS_TOKEN Не ссылается на $_SESSION['facebooke_access_token'], а на ваш токен API маркетинга. Перейдите по https://developers.facebook.com/apps// marketing-api / tools /, чтобы получить токен Marketing API.

Другие вопросы по тегам