7

現在、LightOpenID を使用して、ユーザーが自分のサイトにログインできるようにしています。ユーザー名と電子メール アドレスを自動的に抽出できます。

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

ここでは、パラメータnamePerson/firstnamePerson/last、およびを使用していますcontact/email

ユーザーの連絡先のリストを取得するには、次のフィードを使用する必要があることを理解しています。

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();

    }
?>
4

3 に答える 3

5

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

これを行うには、OAuth (2.0) プロトコルが必要です。ドキュメントごと:

認証プロトコルについて

OAuth 2.0 を使用してリクエストを承認することをお勧めします。

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

于 2012-07-01T23:10:45.307 に答える
0

ドキュメントによると

すべての連絡先を取得する

ユーザーのすべての連絡先を取得するには、承認されたGETリクエストを次のURLに送信します。

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

userEmailの代わりに適切な値を使用します。

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

于 2012-06-28T19:38:00.287 に答える
0

ドキュメントに従って可能である必要があります: https://developers.google.com/accounts/docs/OpenID

OpenID+OAuth ハイブリッド プロトコルにより、Web 開発者は OpenID リクエストと OAuth 認証リクエストを組み合わせることができます。この拡張機能は、OpenID と OAuth の両方を使用する Web 開発者に役立ちます。特に、承認を 2 回ではなく 1 回要求することでユーザーのプロセスを簡素化するという点で役立ちます。

于 2012-08-08T16:15:19.493 に答える