2012-06-24 16 views
7

私は現在のユーザーは、私が自動的にユーザー名とメールアドレスを抽出することができます私のサイトへログインできるようにLightOpenIDを使用しています:LightOpenIDを使用してGoogleコンタクトを取得していますか?

$openid->required = array('namePerson/first', 'namePerson/last', 'contact/email'); 
$openid->identity = 'https://www.google.com/accounts/o8/id'; 

ここで私はパラメータnamePerson/firstnamePerson/last、およびcontact/emailを使用しています。私はINORDERは、ユーザーの連絡先のリストを取得することを理解し

、私は、フィードを使用する必要があります:

https://www.google.com/m8/feeds 

をしかし、私はこれを使用する必要がどのパラメータを見つけ出すように見えることはできませんか?

私がパラメタラインを完全に削除すると、空の配列が返されます。

誰でも連絡先を取得するために必要なパラメータを把握するのに役立つことができますか?

<?php 
    require '/var/www/libraries/openid.php'; 

    try { 

     $openid = new LightOpenID; 

     if(!$openid->mode) { 

      //$openid->required = array('gd/fullName'); 
      $openid->identity = 'https://www.google.com/m8/feeds/contacts/oshirowanen.y%40gmail.com/full'; 
      header('Location: ' . $openid->authUrl()); 
      exit; 

     } elseif($openid->mode == 'cancel') { 

      echo "cancelled"; 
      exit; 

     } else { 

      if ($openid->validate()) { 

       $returned = $openid->getAttributes(); 
       print_r($returned); 

       exit; 

      } else { 

       echo "something is wrong"; 
       exit; 

      } 

     } 

    } catch(ErrorException $e) { 

     echo $e->getMessage(); 

    } 
?> 
+1

私が現在持っているすべてのコードを追加しました。 – oshirowanen

答えて

5

OpenIDプロトコルのみを実装しているため、LightOpenIDではできません。

これを行うには、OAuth(2.0)プロトコルが必要です。 the docsパー:

プロトコルの認可についてリクエストの承認にはOAuth 2.0を使用することをお勧めします。

アプリケーションが特定の異常な許可要件がある場合は、そのような権限(2LO)のデータアクセス(ハイブリッド) またはドメイン全体の委任を要求すると同時にログインするよう 、その後、あなたは は、現在のOAuth 2.0トークンを使用することはできません。そのような場合は、 OAuth 1.0トークンとAPIキーを代わりに使用する必要があります。アプリケーションのAPI は、Google APIコンソールの APIアクセスペインのSimple API Accessセクションにあります。

+0

このAlixのおかげで、私はそれを掘り起こし始めましたが、あまりにも長い時間を過ごしたくありませんでした。私はOAuthを立ち上げる必要があります。 – quickshiftin

0

Per the docs:ここ

は、私が持っている現在のコードでユーザーの連絡先のすべてを取得するには、すべての連絡先

を取得

に認可GETリクエスト を送信しますURL:

https://www.google.com/m8/feeds/contacts/ {us erEmail}/full

userEmailの代わりに適切な値を指定します。

注:特別なuserEmailのデフォルト値を使用して、 認証済みユーザーを参照できます。

+0

私は既にLightOpenIDを使ってみましたが、空の配列を返しています。私は、上記の元の質問に現在ある全コードを含めました。 – oshirowanen

+0

フェア十分に、私はそれに近い外観を与えるでしょう – quickshiftin

+0

この答えは正しいが、質問は間違っています。どちらが間違っていると思いますか? :P –

0

これは、ドキュメントごとに可能なはずである。 https://developers.google.com/accounts/docs/OpenID

のOpenID + OAuthのハイブリッドプロトコルは、Web開発者はOAuthの 認証要求でOpenIDの要求をまとめることができます。この拡張は、OpenIDとOAuthの両方を使用するWeb開発者、特に2回ではなく1回の承認を要求することでユーザーのプロセスを簡素化するという点で便利です。

関連する問題