https://dev.socialidnow.com/index.php?title=AndroidIntegration&feed=atom&action=history
AndroidIntegration - Revision history
2024-03-29T01:42:30Z
Revision history for this page on the wiki
MediaWiki 1.18.1
https://dev.socialidnow.com/index.php?title=AndroidIntegration&diff=822&oldid=prev
Dirceu.tiegs at 16:39, 31 October 2013
2013-10-31T16:39:20Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 16:39, 31 October 2013</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Descrição ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Descrição ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>Esse é um pequeno tutorial <del class="diffchange diffchange-inline">mostrando </del>como <del class="diffchange diffchange-inline">integrar um app Android com o </del>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.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>Esse é um pequeno tutorial <ins class="diffchange diffchange-inline">sobre </ins>como <ins class="diffchange diffchange-inline">configurar a aplicação base do </ins>Social Login para <ins class="diffchange diffchange-inline">Android com o objetivo de </ins>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.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">== Passo 1 - Baixar socialauth-android e usar </del>uma <del class="diffchange diffchange-inline">example app como base ==</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">A aplicação tem apenas </ins>uma <ins class="diffchange diffchange-inline">funcionalidade: ao clicar no ícone do Facebook, Twitter ou Linkedin, o usuário faz login, é registrado no Social Login / Marketing Database configurado e um "Toast" é mostrado na tela dizendo "Hello #{firstName}", para mostrar que o nome foi capturado.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">O arquivo JAR do socialauth</del>-<del class="diffchange diffchange-inline">android e projetos de exemplo prontos para serem importados no Eclipse podem ser encontrados no link abaixo:</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">== Passo 1 </ins>- <ins class="diffchange diffchange-inline">Fazer download o aplicativo base ==</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">http</del>://<del class="diffchange diffchange-inline">code.google</del>.com/<del class="diffchange diffchange-inline">p/socialauth-android/downloads</del>/<del class="diffchange diffchange-inline">list</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">O projeto pronto para usar no Eclipse/ADT pode ser encontrado em:</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">https</ins>://<ins class="diffchange diffchange-inline">github</ins>.com/<ins class="diffchange diffchange-inline">socialidnow</ins>/<ins class="diffchange diffchange-inline">SocialLoginExample</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Passo 2 - Alterar assets/oauth_consumer.properties ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Passo 2 - Alterar assets/oauth_consumer.properties ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>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. <del class="diffchange diffchange-inline">Exemplo</del>:</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>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. <ins class="diffchange diffchange-inline">Você precisa preencher os campos marcados com "???" neste arquivo</ins>:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  #twitter</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  #twitter</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>  twitter.com.consumer_key = <del class="diffchange diffchange-inline">mFST2xmcaiXBROO0c1UUKQ</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  twitter.com.consumer_key = <ins class="diffchange diffchange-inline">???</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>  twitter.com.consumer_secret = <del class="diffchange diffchange-inline">qMSGb1Fk2u5wMoDXrMWZZdl8EBnMvMrtAT8MEgxjVtc</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  twitter.com.consumer_secret = <ins class="diffchange diffchange-inline">???</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  #facebook</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  #facebook</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>  graph.facebook.com.consumer_key = <del class="diffchange diffchange-inline">214491898518165</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  graph.facebook.com.consumer_key = <ins class="diffchange diffchange-inline">???</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>  graph.facebook.com.consumer_secret = <del class="diffchange diffchange-inline">eeaceca77639cbda92de982615a1f7dd</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  graph.facebook.com.consumer_secret = <ins class="diffchange diffchange-inline">???</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  graph.facebook.com.custom_permission = publish_stream,email,user_birthday,user_location,offline_access</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  graph.facebook.com.custom_permission = publish_stream,email,user_birthday,user_location,offline_access</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>   </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  #linkedin</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>  #linkedin</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>  api.linkedin.com.consumer_key = <del class="diffchange diffchange-inline">71jkzd1t35kh</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  api.linkedin.com.consumer_key = <ins class="diffchange diffchange-inline">???</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>  api.linkedin.com.consumer_secret = <del class="diffchange diffchange-inline">J4y0VwBfeJBNspJQ</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>  api.linkedin.com.consumer_secret = <ins class="diffchange diffchange-inline">???</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>== Passo 3: <del class="diffchange diffchange-inline">Fazer requisição para o </del>Social Login <del class="diffchange diffchange-inline">após fazer login em uma rede social </del>==</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>== Passo 3: <ins class="diffchange diffchange-inline">Configurar dados do </ins>Social Login <ins class="diffchange diffchange-inline">(IDs e Secret) na classe que implementa DialogListener </ins>==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">Na classe que você implementar a interface DialogListener</del>, <del class="diffchange diffchange-inline">use o seguinte código </del>no método onComplete(<del class="diffchange diffchange-inline">Bundle values</del>) <del class="diffchange diffchange-inline">alterando as 3 primeiras variáveis para </del>os valores <del class="diffchange diffchange-inline">da sua aplicação (appId, apiId, apiSecret)</del>. <del class="diffchange diffchange-inline">Exemplo</del>:</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">No arquivo MainActivity.java</ins>, no método onComplete <ins class="diffchange diffchange-inline">da classe ResponseListener </ins>(<ins class="diffchange diffchange-inline">que implementa DialogListener</ins>)<ins class="diffchange diffchange-inline">, troque </ins>os valores <ins class="diffchange diffchange-inline">marcados com "???" por valores reais</ins>. <ins class="diffchange diffchange-inline">Esses valores estão nas seguintes variáveis</ins>:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> private final class ResponseListener implements DialogListener</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>appId<ins class="diffchange diffchange-inline">: ID da aplicação do Social Login</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> {</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* </ins>apiId<ins class="diffchange diffchange-inline">: </ins>"<ins class="diffchange diffchange-inline">usuário</ins>" <ins class="diffchange diffchange-inline">para autenticação </ins>(<ins class="diffchange diffchange-inline">http</ins>://<ins class="diffchange diffchange-inline">dev</ins>.socialidnow.com/<ins class="diffchange diffchange-inline">index.php</ins>/<ins class="diffchange diffchange-inline">Authentication</ins>)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">    @Override</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">* apiSecret: </ins>"<ins class="diffchange diffchange-inline">senha</ins>" <ins class="diffchange diffchange-inline">para autenticação </ins>(<ins class="diffchange diffchange-inline">http:</ins>//<ins class="diffchange diffchange-inline">dev</ins>.<ins class="diffchange diffchange-inline">socialidnow</ins>.<ins class="diffchange diffchange-inline">com/index</ins>.<ins class="diffchange diffchange-inline">php/Authentication</ins>)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">    public void onComplete(Bundle values) {</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        // Hardcoded data</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        final String </del>appId <del class="diffchange diffchange-inline">= "234";</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        final String </del>apiId <del class="diffchange diffchange-inline">= </del>"<del class="diffchange diffchange-inline">565</del>"<del class="diffchange diffchange-inline">;</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        final String apiSecret = "e27b8dba2b04f4dc0ef5d22a5772281f1d741705ecab59fc5e4eb9e1a82fa4a2";</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        // Get name of provider after authentication</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        final String providerName = values.getString</del>(<del class="diffchange diffchange-inline">SocialAuthAdapter.PROVIDER);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        Log.d("SIDN", "Provider Name = " + providerName);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        // Social-ID Now POST URL</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        final String sidnPostUrl = "https</del>://<del class="diffchange diffchange-inline">api</del>.socialidnow.com/<del class="diffchange diffchange-inline">v1</del>/<del class="diffchange diffchange-inline">marketing/login/apps/"+appId+"/sign_ins/"+providerName;</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        // Social-ID Now request parameters</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        String accessToken = "";</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        String accessSecret = "";</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        accessToken = MainActivity.this.context.adapter.getCurrentProvider(</del>)<del class="diffchange diffchange-inline">.getAccessGrant().getKey();</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        Log.d(</del>"<del class="diffchange diffchange-inline">SIDN</del>"<del class="diffchange diffchange-inline">, accessToken);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        accessSecret = MainActivity.this.context.adapter.getCurrentProvider</del>(<del class="diffchange diffchange-inline">).getAccessGrant().getSecret();</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        if(accessSecret == null) accessSecret = "";</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        Log.d("SIDN", accessSecret);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        RequestParams params = new RequestParams();</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        params.put("app_id", appId);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        params.put("access_token", accessToken);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        params.put("access_secret", accessSecret);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        </del>// <del class="diffchange diffchange-inline">Make request</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        AsyncHttpClient client = new AsyncHttpClient();</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        client</del>.<del class="diffchange diffchange-inline">setBasicAuth(apiId, apiSecret);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        client</del>.<del class="diffchange diffchange-inline">post(sidnPostUrl, params, new AsyncHttpResponseHandler() {</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            @Override</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            public void onSuccess(String response)</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            {</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">                Log</del>.<del class="diffchange diffchange-inline">d("SIDN", response</del>)<del class="diffchange diffchange-inline">;</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            }</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            @Override</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            public void onFailure(Throwable e, String response)</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            {</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">                Log.d("SIDN", response);</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">            }</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">        });</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline">    }</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> }</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
</table>
Dirceu.tiegs
https://dev.socialidnow.com/index.php?title=AndroidIntegration&diff=821&oldid=prev
Dirceu.tiegs: Versão inicial - sem downloads de app de exemplo
2013-10-31T14:29:44Z
<p>Versão inicial - sem downloads de app de exemplo</p>
<p><b>New page</b></p><div>== Descrição ==<br />
<br />
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.<br />
<br />
== Passo 1 - Baixar socialauth-android e usar uma example app como base ==<br />
<br />
O arquivo JAR do socialauth-android e projetos de exemplo prontos para serem importados no Eclipse podem ser encontrados no link abaixo:<br />
<br />
http://code.google.com/p/socialauth-android/downloads/list<br />
<br />
== Passo 2 - Alterar assets/oauth_consumer.properties ==<br />
<br />
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:<br />
<br />
#twitter<br />
twitter.com.consumer_key = mFST2xmcaiXBROO0c1UUKQ<br />
twitter.com.consumer_secret = qMSGb1Fk2u5wMoDXrMWZZdl8EBnMvMrtAT8MEgxjVtc<br />
<br />
#facebook<br />
graph.facebook.com.consumer_key = 214491898518165<br />
graph.facebook.com.consumer_secret = eeaceca77639cbda92de982615a1f7dd<br />
graph.facebook.com.custom_permission = publish_stream,email,user_birthday,user_location,offline_access<br />
<br />
#linkedin<br />
api.linkedin.com.consumer_key = 71jkzd1t35kh<br />
api.linkedin.com.consumer_secret = J4y0VwBfeJBNspJQ<br />
<br />
== Passo 3: Fazer requisição para o Social Login após fazer login em uma rede social ==<br />
<br />
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:<br />
<br />
private final class ResponseListener implements DialogListener<br />
{<br />
@Override<br />
public void onComplete(Bundle values) {<br />
// Hardcoded data<br />
final String appId = "234";<br />
final String apiId = "565";<br />
final String apiSecret = "e27b8dba2b04f4dc0ef5d22a5772281f1d741705ecab59fc5e4eb9e1a82fa4a2";<br />
<br />
// Get name of provider after authentication<br />
final String providerName = values.getString(SocialAuthAdapter.PROVIDER);<br />
Log.d("SIDN", "Provider Name = " + providerName);<br />
<br />
// Social-ID Now POST URL<br />
final String sidnPostUrl = "https://api.socialidnow.com/v1/marketing/login/apps/"+appId+"/sign_ins/"+providerName;<br />
<br />
// Social-ID Now request parameters<br />
String accessToken = "";<br />
String accessSecret = "";<br />
<br />
accessToken = MainActivity.this.context.adapter.getCurrentProvider().getAccessGrant().getKey();<br />
Log.d("SIDN", accessToken);<br />
<br />
accessSecret = MainActivity.this.context.adapter.getCurrentProvider().getAccessGrant().getSecret();<br />
if(accessSecret == null) accessSecret = "";<br />
Log.d("SIDN", accessSecret);<br />
<br />
RequestParams params = new RequestParams();<br />
params.put("app_id", appId);<br />
params.put("access_token", accessToken);<br />
params.put("access_secret", accessSecret);<br />
<br />
// Make request<br />
AsyncHttpClient client = new AsyncHttpClient();<br />
client.setBasicAuth(apiId, apiSecret);<br />
client.post(sidnPostUrl, params, new AsyncHttpResponseHandler() {<br />
@Override<br />
public void onSuccess(String response)<br />
{<br />
Log.d("SIDN", response);<br />
}<br />
<br />
@Override<br />
public void onFailure(Throwable e, String response)<br />
{<br />
Log.d("SIDN", response);<br />
}<br />
});<br />
}<br />
}</div>
Dirceu.tiegs