編集: ソリューションを表示します。問題は、Twitter ライブラリのインスタンス化方法にあります。
OAuth2 を使用して Twitter 認証を取得しようとしています。単純なテスト スクリプトでは動作させることができますが、WordPress プラグインで使用しようとすると動作しません。
私は PHP リーグの OAuth2 クライアントを、Twitter に接続するために作成したライブラリとともに使用しています。テスト スクリプトは Readme ファイルにあります。
テスト スクリプトは OAuth2 状態を $_SESSION
に保存しますが、実際のアプリケーションはそれを WordPress 一時ファイルに保存します。パイプ経由でデータの整合性を確認しました:
認証 URL 生成後の Twitter ライブラリからのデータ:
リーリーコールバック中に WordPress 一時的なデータから抽出されたデータ (少し異なる方法で保存):
リーリーTwitter トークン エンドポイントからオブジェクトをリクエストします:
リーリー上記のリクエストのテキスト:
リーリー ###間違い:### リーリーここで何か愚かなことを見逃していることはわかっています。しかし、
何がなのかは一生わかりません。実際のアプリケーションにはテスト スクリプトよりもはるかに多くのコードがありますが、Twitter に送信する前を含め、スタック内の複数のポイントでデータを検証しました。他にテストする必要があるものはありますか、それとも何か忘れているものはありますか?
間違いが見つかりました。テスト スクリプトでは、
redirectUri
が OAuth2 クライアントのコンストラクターに渡され、アプリケーションでは、getAuthorizationUrl
関数に渡されます。これは Twitter への最初の呼び出しでは機能しますが、(当然のことながら)getAccessToken
呼び出しにもそのデータが必要です。それで、これが修正です。古くて使い古された:
リーリー新しいホットスポット:
リーリー