opauthのTwitterでログインできない際の対応方法
2024/02/20
opauthを使ったソーシャルログインのシステムにてTwitterでログインできなくなっていた。
「Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings.」とエラー内容が表示されており、調べたところTwitter側のAPIの仕様変更らしく他所でも複数報告が見られた。
ただ、opauthをしており尚且つアプリではなくWebページでの記事がなかったので対応策が中々分からなかった。以下に対応方法をメモ。
対応方法
上記ページからログインして利用中のAppを選択し、Settingsタブを開く。Callback URLsを入れる。URLは「http://hoge.com/login/」で実装している場合は、
http://hoge.com/login/twitter/oauth_callback
を入力しUpdate Settingsボタンを押して設定を反映させると解決する。
その他
CallbackのURLを設定するというのはエラー内容から分かるんだけど、実際にURLをどう書けばよいのか分からなかった。以下辺りを試したが解決されなかった。
- http://hoge.com/login/
- http://hoge.com/login/index.php
- http://hoge.com/login/callback.php
- http://hoge.com/login/twitter
なのでopauthの「/login/lib/Opauth/Strategy/Twitter/TwitterStrategy.php」内にある、
'oauth_callback' => '{complete_url_to_strategy}oauth_callback',
の中身を見たところ「http://hoge.com/login/twitter/oauth_callback」が正解だった。
無いとは思うけどopauthのバージョン違いとかで上記で対応できない場合は、71行目あたりで以下を追記することでcallback用のURLが見られる。
public function request(){
$params = array(
'oauth_callback' => $this->strategy['oauth_callback']
);
var_dump($params); //これを追記
$results = $this->_request('POST', $this->strategy['request_token_url'], $params);
if ($results !== false && !empty($results['oauth_token']) && !empty($results['oauth_token_secret'])){
session_start();
$_SESSION['_opauth_twitter'] = $results;
$this->_authorize($results['oauth_token']);
}
}
関連記事
-
-
PHPで「Warning: date(): It is not safe to…」エラーの対応方法
PHPでdate関数を使った際に「Warning: date(): It is ...
-
-
PHPで外部ファイルから配列を取得
やりたかった事。 ①管理画面で必要項目を入力すると、aaa.phpが 生成される ...
-
-
PHPにてhosts設定を行った上で他サイト・サーバにアクセスする方法
開発中の案件だとhosts設定を行ってサーバにアクセスする、ということがある。作 ...
-
-
PHPで配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法
PHPで配列を確認する際、大抵var_dumpで出力させているがこれが見づらい。 ...
-
-
【2025年版】PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
5年ほど前にPHPとStripeを用いたクレカ決済機能をテスト実装したが最近試し ...