Facebook Ads API无效的OAuth访问令牌 [英] Facebook Ads API Invalid OAuth access token
问题描述
我们当前正在尝试在Laravel中设置Ads API.已经过去了几天,但是getAdAccounts()调用始终会导致无效的OAuth访问令牌".例外. 但是,在Graph Explorer API中使用相同的访问令牌对adaccounts终结点同样适用
We are currently trying to setup an Ads API in Laravel. It has been days but the getAdAccounts() call always results in 'Invalid OAuth access token.' exception. However same access token when used in the Graph Explorer API works just as well for the adaccounts endpoint
这是代码-
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);
}
推荐答案
Api :: init(APP_ID,APP_SECRET,ACCESS_TOKEN); ACCESS_TOKEN不引用$ _SESSION ['facebooke_access_token'],而是您的Marketing API令牌. 转到 https://developers.facebook.com/apps//marketing-api/tools/ 获取Marketing API令牌.
Api::init(APP_ID,APP_SECRET, ACCESS_TOKEN); ACCESS_TOKEN Not refer to $_SESSION['facebooke_access_token'] but your Marketing API token. Go to https://developers.facebook.com/apps//marketing-api/tools/ to get Marketing API token.
这篇关于Facebook Ads API无效的OAuth访问令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!