AndroidIntegration

From Social ID Developers
Revision as of 14:29, 31 October 2013 by Dirceu.tiegs (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Descrição

Esse é um pequeno tutorial mostrando como integrar um app Android com o Social Login para alimentar o Marketing Database com seus usuários. A integração é feita através do socialauth-android, uma biblioteca de código aberto que implementa o login das redes sociais em dispositivos móveis que rodam o sistema Android.

Passo 1 - Baixar socialauth-android e usar uma example app como base

O arquivo JAR do socialauth-android e projetos de exemplo prontos para serem importados no Eclipse podem ser encontrados no link abaixo:

http://code.google.com/p/socialauth-android/downloads/list

Passo 2 - Alterar assets/oauth_consumer.properties

O conteúdo desse arquivo deve refletir as configurações de chave e tokens de segurança dos aplicativos que você criou para cada uma das redes sociais que você pretende usar. Exemplo:

#twitter
twitter.com.consumer_key = mFST2xmcaiXBROO0c1UUKQ
twitter.com.consumer_secret = qMSGb1Fk2u5wMoDXrMWZZdl8EBnMvMrtAT8MEgxjVtc

#facebook
graph.facebook.com.consumer_key = 214491898518165
graph.facebook.com.consumer_secret = eeaceca77639cbda92de982615a1f7dd
graph.facebook.com.custom_permission = publish_stream,email,user_birthday,user_location,offline_access

#linkedin
api.linkedin.com.consumer_key = 71jkzd1t35kh
api.linkedin.com.consumer_secret = J4y0VwBfeJBNspJQ

Passo 3: Fazer requisição para o Social Login após fazer login em uma rede social

Na classe que você implementar a interface DialogListener, use o seguinte código no método onComplete(Bundle values) alterando as 3 primeiras variáveis para os valores da sua aplicação (appId, apiId, apiSecret). Exemplo:

private final class ResponseListener implements DialogListener
{
   @Override
   public void onComplete(Bundle values) {
       // Hardcoded data
       final String appId = "234";
       final String apiId = "565";
       final String apiSecret = "e27b8dba2b04f4dc0ef5d22a5772281f1d741705ecab59fc5e4eb9e1a82fa4a2";

       // Get name of provider after authentication
       final String providerName = values.getString(SocialAuthAdapter.PROVIDER);
       Log.d("SIDN", "Provider Name = " + providerName);

       // Social-ID Now POST URL
       final String sidnPostUrl = "https://api.socialidnow.com/v1/marketing/login/apps/"+appId+"/sign_ins/"+providerName;

       // Social-ID Now request parameters
       String accessToken = "";
       String accessSecret = "";

       accessToken = MainActivity.this.context.adapter.getCurrentProvider().getAccessGrant().getKey();
       Log.d("SIDN", accessToken);

       accessSecret = MainActivity.this.context.adapter.getCurrentProvider().getAccessGrant().getSecret();
       if(accessSecret == null) accessSecret = "";
       Log.d("SIDN", accessSecret);

       RequestParams params = new RequestParams();
       params.put("app_id", appId);
       params.put("access_token", accessToken);
       params.put("access_secret", accessSecret);

       // Make request
       AsyncHttpClient client = new AsyncHttpClient();
       client.setBasicAuth(apiId, apiSecret);
       client.post(sidnPostUrl, params, new AsyncHttpResponseHandler() {
           @Override
           public void onSuccess(String response)
           {
               Log.d("SIDN", response);
           }

           @Override
           public void onFailure(Throwable e, String response)
           {
               Log.d("SIDN", response);
           }
       });
   }
}
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox