Я делаю обходной путь, чтобы позволить пользователю связать свою учетную запись в социальной сети с нашим приложением, а также напрямую создать учетную запись, используя свои учетные записи в социальных сетях. Я следовал этой стратегии здесь для привязки учетной записи пользователя в социальных сетях, если я также использую ее в непосредственно создавая свои аккаунты, у меня куча ошибок. Итак, пока код работает, за исключением твиттера, поскольку он возвращает ошибку:
Класс '\ Laravel \ Socialite \ Two \ TwitterProvider'
Итак, в моем веб-маршруте у меня есть следующее:
// Link SNS
Route::post('/redirect/{provider}', 'User\SocialMediaController@linkMedia');
Route::get('/callback/link/{provider}', 'User\SocialMediaController@saveMedia')->name('socialLinkCallback');
В моем файле SocialMediaController у меня есть следующее:
use CanbuildSocialProvider;
/**
*
* link SNS
*
*/
public function linkMedia(Request $request)
{
$provider = $request->route('provider');
$this->provider = $provider;
$redirectUrl = url('/callback/link/' . $provider);
return $this->buildSocialProvider($redirectUrl)->redirect();
}
И мои настройки twitter api, я уже добавил URL-адрес обратного вызова. Это полное сообщение об ошибке:
Обратите внимание, что я использовал Черты, указанные по ссылке. В фейсбуке и гугле код работает хорошо, кроме твиттера. Кто-нибудь случайно знает, в чем причина этого?
ОБНОВЛЕНИЕ
Как видно из vendor>laravel>socialite>src>SocialiteManager.php
, Twitter использует \Laravel\Socialite\One\AbstractProvider
, а другие используют \Laravel\Socialite\Two\AbstractProvider
. Есть ли способ переопределить это здесь:
public function buildSocialProvider(string $redirectUrl = null): ProviderInterface
{
$providerClass = ucfirst($this->provider);
$provider = strtoupper($this->provider);
$config = [
'client_id' => env($provider . '_CLIENT_ID'),
'client_secret' => env($provider. '_CLIENT_SECRET'),
'redirect' => $redirectUrl,
];
return Socialite::buildProvider('\Laravel\Socialite\Two\\' . $providerClass . 'Provider', $config);
}
\Laravel\Socialite\One\\TwitterProvider
, в то время как другие социальные сети используют\Laravel\Socialite\Two\\TwitterProvider
вSocialiteManager.php
файле, знаете ли вы, как исправить эту ошибку Twitter? - person Eem Jee   schedule 21.05.2019