#reactjs #facebook #facebook-graph-api #laravel-8 #facebook-php-sdk
#реагирует на #Facebook #facebook-график-api #ларавель-8 #facebook-php-sdk
Вопрос:
Я использую laravel для создания API и входа в приложение Facebook, а также для его использования. Почти все работает, я могу войти на экран facebook, и меня перенаправляют на URL-адрес, который возвращает json с сгенерированным токеном. Однако, поскольку этот URL-адрес не вызывается таким клиентом, как axios, у меня нет этого возврата в представлении ReactJS. Когда он перенаправляется на URL-адрес, я вижу на экране только объект json. Я хотел бы иметь возможность взять токен и записать его в базу данных или получить возврат в представлении ReactJS, чтобы иметь возможность манипулировать им, например, делая новый запрос в API, но я не могу этого сделать. Я попытался изменить возврат в API, но это не сработало. Я использую facebook/graph-sdk.
Приведенный ниже код показывает, как вызывается URL-адрес facebook для получения токена. Поскольку адрес API отличается от сайта ReactJS, когда он возвращается, все, что я вижу, — это json с маркером на экране. Я хотел бы получить этот токен из представления ReactJS. Я пытался передать токен за сеанс, когда запускается URL-адрес, но я не могу получить результат сеанса.
$helper = $this-gt;facebook-gt;getRedirectLoginHelper(); if (request('state')) { $helper-gt;getPersistentDataHandler()-gt;set('state', request('state')); } try { $accessToken = $helper-gt;getAccessToken(); } catch(FacebookResponseException $e) { throw new Exception("Graph returned an error: {$e-gt;getMessage()}"); } catch(FacebookSDKException $e) { throw new Exception("Facebook SDK returned an error: {$e-gt;getMessage()}"); } if (!isset($accessToken)) { throw new Exception('Access token error'); } if (!$accessToken-gt;isLongLived()) { try { $oAuth2Client = $this-gt;facebook-gt;getOAuth2Client(); $accessToken = $oAuth2Client-gt;getLongLivedAccessToken($accessToken); } catch (FacebookSDKException $e) { throw new Exception("Error getting a long-lived access token: {$e-gt;getMessage()}"); } } return $accessToken-gt;getValue();