3

スタックオーバーフローズ!だから今の私の仕事は、ソーシャルネットワークを扱うことです。フェイスブック、グーグル、ツイッターにログインしました。次に、ユーザーのアバターを取得する必要があります。サイトは非常に動的で、ほとんどすべてが javascript と ajax を介して機能しています。Facebookユーザーのアバターを正常に取得しました。ユーザーがアバターを持っている場合はアバターを返し、ユーザーがアバターを持っていない場合は、facebook のデフォルトのアバターを返します。今、私はグーグルプラスとツイッターに取り組んでいます。グーグルプラスからアバターを取得できる素敵なURLを見つけました:

    https://plus.google.com/s2/photos/profile/{oauth_id}?sz=100

セッションに oauth_id を保存しています。アクセス可能です。ユーザーがアバターを設定すると、すべて正常に動作します。問題は、ユーザーのアバターが設定されていない場合、そのリンクが 404 エラーを返すことです。そのリンクが404エラーを返すかどうかをjqueryまたはjavascriptで判断するにはどうすればよいですか? そして、将来の作業のために、Twitterにも同じ問題があると思います。または、これを達成するためのより良いオプションを提供できるかもしれません。

4

3 に答える 3

4

これを行うもう 1 つの方法は、plus.me スコープを要求し、ユーザーを認証してから、プロフィールを取得することです。プロフィールには、アバターがある場合に画像の値が設定されます。ここでライブ デモを作成しました: http://wheresgus.com/profile.htmlは、Google+ パブリック データ API を使用したプロファイルの取得を示しています。

プロジェクトの設定を行うには、Google API コンソール ( https://code.google.com/apis/console/ ) に移動し、Google + API を有効にしてプロジェクトを作成します。Google API コンソールの API アクセス セクションから、Web アプリケーションのクライアント ID が必要になります。

関連するコードは次のとおりです。

<html>
  <head>
    <script src="https://apis.google.com/js/plusone.js"></script>
    <script type="text/javascript">
    function onSignin(e){
      accessToken = e.access_token;
      var xhr = new XMLHttpRequest();
      xhr.open('GET', "https://www.googleapis.com/plus/v1/people/me/");
      xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
      xhr.send();

      xhr.onreadystatechange = function(){
        if (this.readyState == 4){
          var myProfile = JSON.parse(xhr.responseText);
          alert(myProfile.image.url);
        }
      }
    }
    </script>      
  </head>
  <body>
    <g:plus action="connect" clientid="YOUR CLIENT ID" scope="https://www.googleapis.com/auth/plus.me" callback="onSignin">
    </g:plus>
  </body>
</html>

このコードで HTML ファイルを作成し、YOUR CLIENT ID を Google API コンソールで作成した資格情報に置き換えます。サインイン ボタンをクリックすると、クライアントはユーザーの URL を提供します。

于 2012-12-06T16:58:11.713 に答える
0

jquery.ajax() または jquery.get() メソッド (または同様のもの) を使用している場合は、コールバックの一部として返される jqXHR オブジェクトを確認できるはずです。HTTP 呼び出しのステータス コードを含む「ステータス」フィールドがあります。

http://api.jquery.com/jQuery.ajax/の jqXHR オブジェクトのセクションを参照してください。

于 2012-12-06T11:36:56.787 に答える