スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

opensocial-php-clientでOpenPNEにアクセス

openpne-php-clientそのままだとOpenPNE接続できない。いろいろ試行錯誤してやっと動くコードになった。まずは初期化とログイン。
まず、既知のProviderないから全てパラメータ指定でProvider生成する。次いでosapiOAuth3LeggedではなくてosapiOAuth3Legged_10aを使わなきゃ駄目。

  $storage = new osapiFileStorage('/tmp/osapi');
  $provider = new osapiProvider(
      'http://sns.example.com/oauth/request_token',
      'http://sns.example.com/oauth/authorize',
      'http://sns.example.com/oauth/access_token',
      'http://sns.example.com/api.php/social/rest/',
      '',
      'OpenPNE',
      true
  );
  $auth = osapiOAuth3Legged_10a::performOAuthLogin('gpXXXXXXXXXXXXDE', 'XXXXXXXXXXXXXXXX@ZY86O71kXXXXXXX', $storage, $provider, $localUserId);
  $osapi = new osapi($provider, $auth);

osapiOAuth3Legged_10aは、以下の修正しないと動かなかった。修正したことで動くようになったけど正当性は不明。

$ diff osapiOAuth3Legged_10a.php.r174 osapiOAuth3Legged_10a.php
<80c80
<     $auth = new osapiOAuth3Legged($consumerKey, $consumerSecret, $storage, $provider, $localUserId, $userId);
---
>     $auth = new osapiOAuth3Legged_10a($consumerKey, $consumerSecret, $storage, $provider, $localUserId, $userId);
138,139c138,139
<     $accessRequest = OAuthRequest::from_consumer_and_token($this->consumerToken, $accessToken, "GET", $this->provider->accessTokenUrl, array('oauth_verifier' => $oauthVerifier));
<     $accessRequest->sign_request($this->signatureMethod, $this->consumerToken, $accessToken);
---
>     $accessRequest = OAuthRequest::from_consumer_and_token($this->consumerToken, $accessToken, "GET", $this->provider->accessTokenUrl, array('oauth_token' => $requestToken, 'oauth_verifier' => $oauthVerifier));
>     $accessRequest->sign_request($this->signatureMethod, $this->consumerToken, $requestToken);

OpenPNE 3.1 機能紹介 #3 - OAuth|OpenPNEのコードと突き合わせながら格闘すること一日。これだけの修正を見つけるのに時間掛かったぁ。OpenPNEのサンプルコードとほとんど変わらないのに、ちゃんとリダイレクトされなくていろいろ試行錯誤するしかなかった。サンプルコードはこのコードは XSS 脆弱性や変数汚染攻撃などに対して脆弱です。絶対にこのまま使用しないでください。らしんだけど、openpne-php-clientもそんなに変わらないから危険なのかねぇ。

スポンサーサイト

この記事へのトラックバックURL

http://memolet.blog22.fc2.com/tb.php/1430-bad2e402

この記事へのトラックバック

この記事へのコメント



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。