15

Google Contacts API v3を使用しようとしています。

OAuth2 の認証と承認により、私はJavaScript 用の Google API クライアント ライブラリを使い始めました。API アクセスのその部分に問題はありません。

しかし、認証部分を実行した後、次に何をすべきかわかりません。Google Contacts API v3にgoogle-api-javascript-clientを使用できますか? javascript-client でサポートされている Google APIのリストに、contacts API が表示されません。しかし、私はOAuth 2.0 Playground ツールで完全にアクセスできます。

最新の Google Contacts API でどのクライアントが最適に機能しているか、本当に混乱しています。gdata-javascript-clientとは何ですか?

4

7 に答える 7

3

発生している問題は、Contacts API v3 が非推奨のGData Client Libraryで動作する古い API であることです。したがって、新しいGoogle API JavaScript Clientとは互換性がありません。

ここでは、GData クライアント ライブラリを読み込んで使用する必要があります。GData ライブラリと Google API クライアントの違いの詳細については、SO に関する最近の質問: gapi.client.load と google.loadを参照してください。

于 2013-01-02T23:50:10.110 に答える
2

残念ながら、Google Contacts API は新しい Javascript クライアント ライブラリでは動作しません。GData クライアント ライブラリでのみ動作します。GData クライアント ライブラリを動かしてみましたが、ライブラリが非推奨になったという警告が毎回ドキュメントに表示されるので難しいです。

そのため、ハイドリッドを使用し、

  1. 新しいクライアント ライブラリを使用して、認証を取得します。
  2. URL を使用して連絡先を取得する

残念ながら、クロスドメインの制限により、JSONP を使用する必要があります。そうしないと、ブラウザーが失敗します。

 <script src="https://apis.google.com/js/client.js"></script>
.....
function contactsInit() {
  var clientId = 'YOURCLIENTID.apps.googleusercontent.com';
  var scopes = 'https://www.google.com/m8/feeds';
  gapi.auth.authorize({
    client_id: clientId, scope: scopes, immediate: false}, 
     handleAuthResult);

 function handleAuthResult(authResult) {
 if (authResult && !authResult.error) {
   var url = 
    "https://www.google.com/m8/feeds/contacts/default/" + 
    "full?alt=json-in-script&access_token=" + 
    authResult.access_token + 
    "&max-results=7000&v=3.0";

   var myJSONP = new Request.JSONP({
      url: url,
      callbackKey: 'jsoncallback',
      data: {
            },
      onRequest: function(url){
                // a script tag is created with a src equal to url
          },
      onComplete: function(data){
                // the request was completed.
            }
      }).send();
    }
 }
}

function Skeleton() {}
  if (!gdata) {
    var gdata = new Skeleton();
    gdata.io  = new Skeleton();
    gdata.io.handleScriptLoaded = function(data)    {
      processContacts(data);
  }
}

注: JSONP には Mootools を使用しますが、 JQuery を使用せずに Javascript から JSONP 要求を作成する方法で jquery またはバニラ js を使用することもできます。

独自の YOURCLIENTID を指定し、processContacts 関数を定義する必要があります。

gdata.io.handleScriptLoaded(data) は、コールバック中に URL が期待するものであるため、必要です。

私は 7000 の制限を使用していますが、必要ではないと思います。

JSONP を使用したくない場合は、access_token を Web サーバーに転送し、そこで URL を処理できます。たとえば、cURL または Node.js を使用して、json-in-script を json に置き換えるだけです。

In json-in-script はブラウザで重要です。そうしないと、ブラウザが鳴きます。

このページの他の回答のおかげで、正しい方向に向けられました。

Google が Contacts API を新しい Javascript クライアント ライブラリで使用できるようにしてくれることを願っています。それまでの間、他の人がこのソリューションを使用できることを願っています。

于 2015-02-04T12:40:24.150 に答える
0

Googleプラスを使用して連絡先のリストを取得するには、これを使用します:-

<script src="https://apis.google.com/js/client.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
  function auth() {
    var config = {
      'client_id': 'OAUTH_CLIENT_ID',
      'scope': 'https://www.google.com/m8/feeds'
    };
    gapi.auth.authorize(config, function() {
      fetch(gapi.auth.getToken());
    });
  }

  function fetch(token) {
    $.ajax({
    url: "https://www.google.com/m8/feeds/contacts/default/full?access_token=" + token.access_token + "&alt=json",
    dataType: "jsonp",
    success:function(data) {
              console.log(JSON.stringify(data));
    }
});

}

HTML 本文:-

<button onclick="auth();">GET CONTACTS FEED</button>

出力には、電話番号を含む連絡先のフィールドがあります。

適切なリダイレクト URI を使用して、Google 開発者コンソールからクライアント ID を取得してください。

于 2015-04-14T07:30:53.770 に答える
-3

google contact v3 は、この仕事の親友です

ここで、考えられるすべてのリクエスト エンドポイントを見つけることができます https://developers.google.com/google-apps/contacts/v3/

すべての連絡先リストと同様に、これがエンドポイント です

認証を取得した後、この URL に対して get リクエストを実行して、すべての連絡先リストを取得できます。パイ

于 2013-01-02T19:29:48.750 に答える