IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Android C2DM


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Android C2DM
    Bonjour à tous!

    Je suis actuellement en train d'implémenter google C2DM sur une application.
    A l'aide de plusieurs tuto et d'exemples j'ai réussi à comprendre le fonctionnement mais avec mon anglais qui est de temps en temps approximatif qqe points m'échappent:

    - je n'arrive pas bien à comprendre à quoi correspond le collapse key lorsqu'on veut envoyer un message sur un téléphone

    - j'ai lu que Google rafraichit le registration ID que récupère le mobile, il faut donc que j'implémente une fonction capable de récupérer le nouveau registration ID et l'envoyer à mon serveur mais à quel intervalle de temps ?

    - même question mais pour le token récupérer par le serveur

    Bonne journée à tous !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 168
    Points : 212
    Points
    212
    Par défaut
    Collapse key = clé de ton appli (tu met ce que tu veux)

    L'idregistration change mais quand il veut, donc essaie de le demander chaque jour environ.

    Le token que l'on récupère depuis le serveur c'est pour pouvoir envoyer les notifications, tu le dois le récupérer chaque fois que tu te le logue au service google pour que tu puisses envoyer des notif.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut,

    Merci pour tes réponses, en ce qui concerne le token est ce qu'il change comme l'idregistration et est ce que je dois également le demander environ tous les jours ?

    Bonne journée.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 149
    Points : 109
    Points
    109
    Par défaut
    Bonjour,
    Pour le token il faut que tu le récupères à chaque envoi de notification.

    moi j'ai un problème justement pour le récupérer.

    je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    function googleAuthenticate($username,$password,$service)
    		{
    			$ch = curl_init();
    			if(!$ch)
    			return false;
     
    			curl_setopt($ch,CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
    			$post_fields = "Email=" .urlencode($username)."&Passwd=".urlencode($password)
    			//."&source=".urlencode($source)
    			."accountType=".urlencode('GOOGLE')."&service=".urlencode($service);
    			curl_setopt($ch, CURLOPT_HEADER, true);
    			curl_setopt($ch, CURLOPT_POST, true);
    			curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
    			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    			curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    			curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    			$reponse = curl_exec($ch);
    			echo $reponse;
    			curl_close($ch);
    			if (strpos($reponse,'200 OK')==FALSE)
    			{
    				return false;
    			}
    			//recuperation du code d'authentification
    			preg_match("/(Auth=)([\w|-]+)/",$reponse,$matches);
    			if(!$matches[2])
    			return false;
     
    			return $matches[2];
    		}
    pour le username j'utilise le mail du compte google
    pour le password le pass du compte google
    et pour le service ac2dm

    mais en réponse j'ai ça :
    HTTP/1.1 403 Forbidden Content-Type: text/plain Cache-control: no-cache, no-store Pragma: no-cache Expires: Mon, 01-Jan-1990 00:00:00 GMT Date: Fri, 01 Jun 2012 08:18:20 GMT X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Content-Length: 24 Server: GSE Error=BadAuthentication

    j'ai bien compris que j'avais une erreur d'authentification mais je vois pas trop pourquoi.
    est-ce parce que je le fait depuis un wamp local?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Problème authentification C2DM
    Merci,

    En ce qui concerne ton problème je ne saurai pas trop t'aider, personnellement j'utilise la méthode java suivante et cela fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public static String getToken(String email, String password)
    			throws IOException {
    		// Create the post data
    		// Requires a field with the email and the password
    		StringBuilder builder = new StringBuilder();
    		builder.append("Email=").append(email);
    		builder.append("&Passwd=").append(password);
    		builder.append("&accountType=GOOGLE");
    		builder.append("&source=MyLittleExample");
    		builder.append("&service=ac2dm");
     
    		// Setup the Http Post
    		byte[] data = builder.toString().getBytes();
    		URL url = new URL("https://www.google.com/accounts/ClientLogin");
    		HttpURLConnection con = (HttpURLConnection) url.openConnection();
    		con.setUseCaches(false);
    		con.setDoOutput(true);
    		con.setRequestMethod("POST");
    		con.setRequestProperty("Content-Type",
    				"application/x-www-form-urlencoded");
    		con.setRequestProperty("Content-Length", Integer.toString(data.length));
     
    		// Issue the HTTP POST request
    		OutputStream output = con.getOutputStream();
    		output.write(data);
    		output.close();
     
    		// Read the response
    		BufferedReader reader = new BufferedReader(new InputStreamReader(
    				con.getInputStream()));
    		String line = null;
    		String auth_key = null;
    		while ((line = reader.readLine()) != null) {
    			if (line.startsWith("Auth=")) {
    				auth_key = line.substring(5);
    			}
    		}
     
    		// Finally get the authentication token
    		// To something useful with it
    		return auth_key;
    	}
    En espérant que cela puisse t'aider.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 149
    Points : 109
    Points
    109
    Par défaut
    Ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Android challenge : Construction d'une équipe projet
    Par myDroid dans le forum Android
    Réponses: 0
    Dernier message: 15/11/2007, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo