Autore Topic: OAuth Token  (Letto 1090 volte)

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
OAuth Token
« il: 02 Novembre 2012, 09:34:49 CET »
0
Ciao a tutti,
sto cercando di integrare FusionTable in una mia app.
Non mi riesce come prima cosa di richiedere il token per l'autenticazione.
ho messo questo codice prendendolo dalla documentazione ufficiale.
Le API Consolle le ho attivate ma non va.
Ecco il codice:
Codice (Java): [Seleziona]
package com.example.prova;

import java.io.IOException;

import com.google.android.gms.auth.GoogleAuthException;
import com.google.android.gms.auth.GoogleAuthUtil;
import com.google.android.gms.auth.GooglePlayServicesAvailabilityException;
import com.google.android.gms.auth.UserRecoverableAuthException;
import com.google.android.gms.common.GooglePlayServicesUtil;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

    private static final int MY_ACTIVITYS_AUTH_REQUEST_CODE = 0;
        private static final String TAG = null;
        private static final int AUTH_REQUEST_CODE = 0;
        private static String token ="22";

        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        getAndUseAuthTokenInAsyncTask();
       
   

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    // Example of how to use the GoogleAuthUtil in a blocking, non-main thread context
    void getAndUseAuthTokenBlocking() {
        Log.w(TAG, "token:");
         try {
                 Log.w(TAG, "try:");
                        token = GoogleAuthUtil.getToken(getBaseContext(), "alessandro.gbridge@gmail.com", "https://www.googleapis.com/auth/fusiontables");
                         
         } catch (GooglePlayServicesAvailabilityException playEx) {
             Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
                 playEx.getConnectionStatusCode(),
                 this,
                 AUTH_REQUEST_CODE);
             // Use the dialog to present to the user.
         } catch (UserRecoverableAuthException recoverableException) {
             Intent recoveryIntent = recoverableException.getIntent();
             // Use the intent in a custom dialog or just startActivityForResult.
         } catch (GoogleAuthException authEx) {
             // This is likely unrecoverable.
             Log.e(TAG, "Unrecoverable authentication exception: " + authEx.getMessage(), authEx);
         } catch (IOException ioEx) {
             Log.i(TAG, "transient error encountered: " + ioEx.getMessage());
             //doExponentialBackoff();
         }

        Log.w(TAG, "token:"+token);
    }

    // Example of how to use AsyncTask to call blocking code on a background thread.
    void getAndUseAuthTokenInAsyncTask() {
        AsyncTask task = new AsyncTask() {
            protected Void doInBackground(Void... params) {
                getAndUseAuthTokenBlocking();
                                return null;
            }

                        @Override
                        protected Object doInBackground(Object... params) {
                                // TODO Auto-generated method stub
                                getAndUseAuthTokenBlocking();
                                return null;
                        }
        };
        task.execute((Void)null);
    }        
}
e il logcat.
Codice: [Seleziona]
11-02 09:29:11.169: W/(1712): token:
11-02 09:29:11.169: W/(1712): try:
11-02 09:29:11.749: E/(1712): Unrecoverable authentication exception: Unknown
11-02 09:29:11.749: E/(1712): com.google.android.gms.auth.GoogleAuthException: Unknown
11-02 09:29:11.749: E/(1712):         at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
11-02 09:29:11.749: E/(1712):         at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
11-02 09:29:11.749: E/(1712):         at com.example.prova.MainActivity.getAndUseAuthTokenBlocking(MainActivity.java:47)
11-02 09:29:11.749: E/(1712):         at com.example.prova.MainActivity$1.doInBackground(MainActivity.java:80)
11-02 09:29:11.749: E/(1712):         at android.os.AsyncTask$2.call(AsyncTask.java:185)
11-02 09:29:11.749: E/(1712):         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
11-02 09:29:11.749: E/(1712):         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
11-02 09:29:11.749: E/(1712):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
11-02 09:29:11.749: E/(1712):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
11-02 09:29:11.749: E/(1712):         at java.lang.Thread.run(Thread.java:1019)
11-02 09:29:11.749: W/(1712): token:22

qualche idea??
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:OAuth Token
« Risposta #1 il: 12 Novembre 2012, 14:45:58 CET »
0
prova a cambiare la stringa scope in:

Codice (Java): [Seleziona]
"oauth2:https://www.googleapis.com/auth/fusiontables"

EDIT: l'ho presa da quà http://android-developers.blogspot.it/2012/09/google-play-services-and-oauth-identity.html