質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

1回答

1826閲覧

Cakephp2 + opauth でtwitter 認証した場合の戻り

chimi

総合スコア9

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/02/27 11:38

前提・実現したいこと

cakephp2+opauthプラグインでTwitter apiを使ったログイン機能を作成しようとしています。

発生している問題・エラーメッセージ

twitterからのコールバックメソッドを実装したところ、
Twitterから送信される戻りのデータが以下のようなデータとなりました。

戻りのデータには、名前やメールアドレスなどが入っていると思ったのですが、
以下のような文字列だけが送信されてきました。(文字列は改変してあります)

名前などの情報を取るにはどうしたらよいでしょうか?

Array ( [opauth] => mlsZV9iYWNrZ3JvdW5kX2ltYWdlX3Vy3JvdW5kX3RpbGUiOjAsInByb2ZpbGVfaW1hZ2VfdXJsIjoiaHR0cDpcL1wvcGJzLnR3aW1nLmNvbVwvcHJvZmlsZV9pbWFnZXNcLzk2NzcwMjQzMzAyMjM5ODQ2NFwvM044UUNxMjlfbm9ybWFsLmpwZyIsInBydvb2t3Xsh0ZW5kZWRfcHJvZmlsZSI6MCwmaWxlXeyJhdXRoIjp7InVpZCI6OTY3NzAxMTsdcxODAzNTM3NDA4LCJpbmZvIjp7Im5hbWUiOiJzaGluaWNoaSBuYWthNoaW1pa2FuYV9iZGVmYXuaWNrbVsdF9wcm9maWxlIjoxLCJkZWZhdWx0X3Byb2ZpbGVfaW1hZ2UiOjAsImZvbasfGxvd2luZyI6MCasdfwiZm9sbG93X3JlcXVlc3Rfc2VusdCI6MCwibm90aWZpY2F0aW9ucyI6MCwidHJhbnNsYXRvcl90eXBlIjoibm9uZSIsImVtYWlsIjoiY2hpbWlrYW5hQGdtYWlsLmNvbSJ9Y2sifQ== )

php Controller

コントローラに記述したコールバック関数は以下の通りです。以下の実行結果が上の通りとなります。

php

1 public function twitter_callback() { 2 pr($this->request->data); 3 }

OpauthのConfig値は以下の通り

php

1Array 2( 3 [path] => /auth/ 4 [debug] => 1 5 [callback_url] => /auth/callback 6 [callback_transport] => post 7 [security_salt] => セキュリティーsalt 8 [strategy_dir] => /www/app/Plugin/Opauth/Strategy/ 9 [Strategy] => Array 10 ( 11 [Twitter] => Array 12 ( 13 [key] => キー文字列 14 [secret] => シークレット文字列 15 ) 16 17 ) 18 19) 20

OpauthのConfig値は以下の通り

php

1Array 2( 3 [path] => /app/auth/ 4 [debug] => 1 5 [callback_url] => /auth/callback 6 [callback_transport] => post 7 [security_salt] => セキュリティーsalt 8 [strategy_dir] => /www/app/Plugin/Opauth/Strategy/ 9 [Strategy] => Array 10 ( 11 [Twitter] => Array 12 ( 13 [key] => キー文字列 14 [secret] => シークレット文字列 15 ) 16 17 ) 18 19) 20

root.phpの記載は以下

php

1Router::connect('/auth/callback', array('controller' => 'users', 'action' => 'twitter_callback'));

補足情報(FW/ツールのバージョンなど)

twitter apiの設定では、Permissions : ReadOnlyとし、Request email addresses from usersにチェックを入れています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

TwitterAPIの OAUTHの戻り値はアクセストークンです。
それをもとに USER-API 等で必要な情報を取得しましょう

投稿2018/02/27 15:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chimi

2018/03/12 00:13

ありがとうございます。 戻りをjson decodeすると 名前やメールが入っていました。 やはりopauthプラグインの使い方が間違っているようです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問