ninjauthのoauthがTwitter API 1.1に対応していなかったので強引に修正した

fuelphp プログラミング

FuelPHPで作ったサイトのTwitter認証が動かなくなってました
git submodule update ぐらいでなんとかなるだろうなんて思ってましたがなんともならなかったので修正しました(^_^;)

fuel/packages/oauthを更新

ninjauthはfuel-oauthを使ってtwitter認証をしているのでまずはこちらを更新
https://github.com/fuel-packages/fuel-oauth

と思いましたが1年以上更新されておらず、twitter api 1.1にも対応していないのでforkされているところから取ってきます
e-g-kangaroo/fuel-oauth · GitHub

fuel/packages/oauthのリモートリポジトリを変更

~~~
cd fuel/packages/oauth
git remote set-url origin https://github.com/e-g-kangaroo/fuel-oauth
git pull origin master
~~~

これでAPIには対応出来ましたが返り値が変わったようでninjauth側でエラーが・・
めんどくさいのでこっちは強引に直します

fuel/packages/ninjauthを修正

fuel/packages/ninjauth/classes/strategy.phpの108行目でエラーが出るので下記のように修正
~~~
@@ -89,7 +89,8 @@ abstract class Strategy
switch ($this->name)
{
case ‘oauth’:
– $user_hash = $this->provider->get_user_info($this->consumer, $token);
+ $user_hash = (array) $this->provider->get_user_info($this->consumer, $token);
+ $user_hash[‘uid’] = $user_hash[‘id’];
break;

case ‘oauth2’:
~~~

これで無事?直りました
こういう時のためにpackageを使っているのに対応方法が残念であります(´Д`)

コメント

タイトルとURLをコピーしました