Skip to content

Instantly share code, notes, and snippets.

@Felipe00
Created September 29, 2016 14:33
Show Gist options
  • Save Felipe00/39b56a68dadb30be49afedd9b4c3dca9 to your computer and use it in GitHub Desktop.
Save Felipe00/39b56a68dadb30be49afedd9b4c3dca9 to your computer and use it in GitHub Desktop.
package br.com.geifferson.today;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.GraphRequest;
import com.facebook.GraphResponse;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Text;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
public class LoginActivity extends AppCompatActivity {
private LoginButton loginButton;
private CallbackManager callbackManager;
private ImageView fotoFacebook;
private TextView nomeFacebook;
private TextView emailFacebook;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
fotoFacebook = (ImageView) findViewById(R.id.fotofacebook);
nomeFacebook = (TextView) findViewById(R.id.NomeDaPessoa);
emailFacebook = (TextView) findViewById(R.id.emailDaPessoa);
callbackManager = CallbackManager.Factory.create();
loginButton = (LoginButton) findViewById(R.id.loginButton);
loginButton.setReadPermissions(Arrays.asList("email"));
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback()
{
@Override
public void onCompleted(JSONObject object, GraphResponse response)
{
Toast.makeText(LoginActivity.this, "Logado com Sucesso", Toast.LENGTH_SHORT).show();
Log.d(">>>>",object.toString());
try {
String NomeDaPessoa = object.getString("name");
String emailDaPessoa = object.getString("email");
JSONObject jsonFoto = object.getJSONObject("picture");
JSONObject jsonFotoData = jsonFoto.getJSONObject("data");
String photoUrl = jsonFotoData.getString("url");
goMainScreen(NomeDaPessoa, photoUrl, emailDaPessoa);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,first_name,last_name,email,picture");
graphRequest.setParameters(parameters);
graphRequest.executeAsync();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), R.string.cancel_login, Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException error) {
Toast.makeText(getApplicationContext(), R.string.error_login, Toast.LENGTH_SHORT).show();
}
});
}
private void goMainScreen(String nomeDaPessoa, String photoUrl, String emailDaPessoa) {
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("nome", nomeDaPessoa);
intent.putExtra("photoUrl",photoUrl);
intent.putExtra("emailDaPessoa",emailDaPessoa);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
<!-- Adiciona esse textview no teu layout e posiciona ele onde tu quer -->
<Textview
android:id="@+id/emailDaPessoa"
android:width="wrap_content"
android:height="wrap_content" />
package br.com.geifferson.today;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.facebook.AccessToken;
import com.facebook.login.LoginManager;
import com.squareup.picasso.Picasso;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView nome = (TextView) findViewById(R.id.NomeDaPessoa);
ImageView imagem = (ImageView) findViewById(R.id.fotofacebook);
TextView email = (TextView) findViewById(R.id.emailDaPessoa);
if (getIntent().hasExtra("nome")){
nome.setText(getIntent().getStringExtra("nome"));
email.setText(getIntent().getStringExtra("emailDaPessoa"));
Picasso.with(MainActivity.this).load(getIntent().getStringExtra("photoUrl"))
.into(imagem);
}
if (AccessToken.getCurrentAccessToken() == null) {
goLoginScreen();
}
}
private void goLoginScreen() {
Intent intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
public void link(View v) {
startActivity(new Intent(this, LinkActivity.class));
}
public void logout(View view) {
LoginManager.getInstance().logOut();
Toast.makeText(MainActivity.this, "Encerrado com Sucesso", Toast.LENGTH_SHORT).show();
goLoginScreen();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment