2017-04-04 23 views
0

アンドロイドでGoogleでログインしたことがありますか?アンドロイドアプリやウェブサイトでGoogleにログインしているユーザー数を知るにはどうすればよいですか?

どのような方法を知っていますか?アンドロイドアプリやウェブサイトでもGoogleで何人のユーザーがログインしていますか?

私はgoogleで正常にログインする方法を知りたいです。ユーザーが拒否され、許可を与えるためにキャンセルされた場合、Googleアナリティクスは、ユーザーが許可を得るためにキャンセルされ、Googleにサインインする許可を承認しなかった場合、1回のクリックを表示しますか?

私はhttps://console.developers.google.com/を見ることができますか?

ダッシュボードの意味はなんですか?>トラフィック、エラーhttps://console.developers.google.com/のですか?

このデータはどのデータを示していますか?

+0

がAndroidアプリ [リンク](https://developers.google.com/analytics/devguides/collection/にAnalyticsを追加実装し、パブリッククラスはandroid/v4 /) –

+0

Googleでうまくログインしたいのですが。ユーザーが拒否され、許可を与えるためにキャンセルされた場合、Googleアナリティクスは、ユーザーが許可を得るためにキャンセルされ、Googleにサインインする許可を承認しなかった場合、1回のクリックを表示しますか? – user6313669

+0

あなたのログインWebサービスでlogin_typeを作成すると、Googleのユーザーがカウントされます –

答えて

0

GoogleアナリティクスをAndroidアプリに追加し、予定されている予定を追跡します。あなたの場合、トラックのイベントで https://developers.google.com/analytics/devguides/collection/android/v4/

に従うか、この時点では、Webサーバーにデータを投稿してください。

@Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    // Result returned from launching the Intent from 
    // GoogleSignInApi.getSignInIntent(...); 
    if (requestCode == RC_SIGN_IN) { 
     //Google44 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     if (result.isSuccess()) { 
    //Post or track here 
    } 
} 
} 
+0

googleでのログインに成功しました。ユーザーが拒否され、許可を与えるためにキャンセルされた場合、Googleアナリティクスは、ユーザーが許可を得るためにキャンセルされ、Googleにサインインする許可を承認しなかった場合、1回のクリックを表示しますか? – user6313669

+0

成功したログインのイベントを追跡できます。 Googleアナリティクスを統合してそのようなイベントをキャプチャするか、独自のWebサービスを統合してそのようなカウントを維持します。 –

+0

あなたはバックエンドから成功したログインデータを得ることができるとお考えですか? – user6313669

0

は、AndroidアプリをuがAndroidデバイス内のすべてのログインユーザを示し、次のutilのクラスを使用することができます。

GooglePlusUtilがGoogleApiClient.OnConnectionFailedListener {

public static final int RC_SIGN_IN = 007; 
public static final int G_LOGIN_CANCELLED = 12051; 

private int userIdCounter = 0; 
private Context mContext; 
private GoogleApiClient mGoogleApiClient; 
private FragmentActivity mFragmentActivity; 
private GoogleResponse mResponseListener; 

/** 
* Instantiates a new Google util. 
* 
* @param context 
* @param activity  the context 
* @param signInPresenter 
*/ 
public GooglePlusUtil(Context context, FragmentActivity activity, SignInPresenter signInPresenter) { 
    mContext = context; 
    mFragmentActivity = activity; 
    mResponseListener = signInPresenter; 
    initGPlus(); 
} 

private void initGPlus() { 
    // Configure sign-in to request the user's ID, email address, and basic 
    // profile. ID and basic profile are included in DEFAULT_SIGN_IN. 
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .build(); 

    // Build a GoogleApiClient with access to the Google Sign-In API and the 
    // options specified by gso. 
    mGoogleApiClient = new GoogleApiClient.Builder(mContext) 
      .enableAutoManage(mFragmentActivity, this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 
} 

/** 
* Call G+ login activity. 
*/ 
public void login() { 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
    mFragmentActivity.startActivityForResult(signInIntent, RC_SIGN_IN); 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
    Crashlytics.log(connectionResult.toString()); 
    Log.d("ConnectionResult", "G+ " + connectionResult.toString()); 
} 

/** 
* Parse G+ response. 
* 
* @param accountsByType account number id 
* @param acct   G+ response. 
*/ 
public void findAuth(Account[] accountsByType, GoogleSignInAccount acct) { 
    matchAccountNumber(accountsByType, acct); 
    new GoogleAsyncTask(accountsByType, acct).execute(); 
} 

/** 
* userIdCounter Account Number 
* 
* @param accounts account number id 
* @param acct  G+ response. 
*/ 
private void matchAccountNumber(Account[] accounts, GoogleSignInAccount acct) { 
    for (int index = 0; index < accounts.length; index++) { 
     if (accounts[index].name.equals(acct.getEmail())) { 
      userIdCounter = index; 
      break; 
     } 
    } 
} 

/** 
* Google login response. 
* 
* @param result G+ instance. 
*/ 
public void handleSignInResult(GoogleSignInResult result) { 
    if (result.isSuccess()) { 
     GoogleSignInAccount acct = result.getSignInAccount(); 
     if (acct == null || ActivityCompat.checkSelfPermission(mContext, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) { 
      return; 
     } 
     findAuth(AccountManager.get(mContext).getAccountsByType("com.google"), acct); 

    } else if (result.getStatus().getStatusCode() == G_LOGIN_CANCELLED) { 
     ToastUtils.getInstance(mContext).showToast(mContext.getString(R.string.google_login_cancelled)); 
    } else { 
     ToastUtils.getInstance(mContext).showToast(mContext.getString(R.string.message_not_able_to_login_via_google)); 
    } 
} 

public class GoogleAsyncTask extends AsyncTask<Void, Void, String> { 
    private Account[] mAccountsByType; 
    private GoogleSignInAccount mGoogleSignInAccount; 

    /** 
    * Instantiates a new Google async task. 
    * 
    * @param accountsByType 
    * @param acct 
    */ 
    public GoogleAsyncTask(Account[] accountsByType, GoogleSignInAccount acct) { 
     mAccountsByType = accountsByType; 
     mGoogleSignInAccount = acct; 
    } 

    @Override 
    protected String doInBackground(Void... params) { 
     try { 
      return GoogleAuthUtil.getToken(mContext, mAccountsByType[userIdCounter], Constants.OAUTH_URL); 
     } catch (UserRecoverableAuthException e) { 
      Crashlytics.logException(e.getCause()); 
      AppLogger.e(e); 
      mResponseListener.onTokenNotFound(e.getIntent(), RC_SIGN_IN); 
     } catch (GoogleAuthException | IOException e) { 
      Crashlytics.logException(e.getCause()); 
      AppLogger.e(e); 
     } 
     return ""; 
    } 

    @Override 
    protected void onPostExecute(String token) { 
     IsAuthValidRequest isAuthValidRequest = new IsAuthValidRequest(); 
     isAuthValidRequest.setEmail(mGoogleSignInAccount.getEmail()); 
     isAuthValidRequest.setFirstName(mGoogleSignInAccount.getDisplayName()); 
     isAuthValidRequest.setLastName(mGoogleSignInAccount.getFamilyName()); 
     mResponseListener.onGoogleUserInfoAvailable(isAuthValidRequest, token); 
    } 
} 

public interface GoogleResponse { 

    /** 
    * When user info and token found. 
    * 
    * @param isAuthValidRequest info instance. 
    * @param token G+. 
    */ 
    void onGoogleUserInfoAvailable(IsAuthValidRequest isAuthValidRequest, String token); 

    /** 
    * Invoke when auth token not found. 
    * 
    * @param intent  instance. 
    * @param requestCode request code. 
    */ 
    void onTokenNotFound(Intent intent, int requestCode); 
} 

}

関連する問題