Ich verwende restfb API, um auf die Fotos meiner Freunde in Java zuzugreifen. Und um auf diese Fotos zuzugreifen, erzeuge ich den Zugriffscode manuell unter Verwendung von Graph API explorer und gebe dies als Parameter an den Restfb-API-Aufruf weiter.Wie erhalten Sie Facebook Benutzerzugriffstoken in Android?
Aber jetzt möchte ich dieses Zugriffs-Token durch Code (programmgesteuert) generieren. Ich habe fb Android-Proben gesehen, besonders Hackbook. Ich sehe keinen Zugriffscode, den ich für meine eigene Anwendung verwenden kann. Muss ich eine neue App erstellen und ein Geheimnis usw. bekommen? Jeder Vorschlag wird geschätzt.
Ich habe diese Lösungen (solution-1 & solution-2) auf Stackoverflow gesehen, aber ich bekomme immer noch nicht, wo ich anfangen soll?
-Update-1 ::
ich folgenden Code verwende um sich einzuloggen und Zugang bekommen Token angemeldeten Benutzers für. Das Problem ist nur, dass es nur für den Account funktioniert, mit dem ich auf Facebook eine App erstellt habe, um eine App_ID zu generieren. Es erhält keinen Rückruf für andere Konten. Irgendein Vorschlag bitte.
Und für den Fall, dass Sie nicht wissen, wo Sie anfangen sollen, folgen Sie step-6, um eine neue App von Grund auf neu zu erstellen.
public class MainActivity extends Activity implements OnClickListener {
Button login;
TextView accessToken;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button) findViewById(R.id.login);
accessToken = (TextView) findViewById(R.id.accessToken);
login.setOnClickListener(this);
// start Facebook Login
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
@Override
public void onResume()
{
Session session = Session.getActiveSession();
if(session != null)
if (session.isOpened()) {
//Toast.makeText(this, session.getAccessToken(), Toast.LENGTH_LONG).show();
accessToken = (TextView) findViewById(R.id.accessToken);
accessToken.setText(session.getAccessToken());
System.out.println("----------------------" + session.getAccessToken() + "---------------------");
}
super.onResume();
}
@Override
public void onClick(View v) {
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
// callback after Graph API response with user
// object
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello "
+ user.getName() + "!");
}
}
});
}
}
});
}
}
Dank für die Antwort danken, ich bin ein Objekt der Session nicht erlaubt erstellen. Bitte lass mich wissen, warum das passiert! – TharakaNirmana
In der Tat müssen Sie keine neue Session-Instanz erstellen, verwenden Sie einfach die Methode 'getActiveSession()' oder 'openActiveSession()', falls Sie eine Null-Sitzung von der vorherigen erhalten. Siehe dazu auch [meine andere Antwort] (http://stackoverflow.com/questions/16140771/login-with-facebook-android-sdk-3-0-using-shared-preferences-session/16143102#16143102) – 5agado
Danke für die Antwort, meine Situation ist ein bisschen seltsam. Ich habe ein Facebook-Objekt (Facebook facebook = neues Facebook()). Aber mit diesem Objekt kann ich facebook.getActiveSession() oder facebook.openActiveSession() nicht aufrufen. Kannst du mir bitte sagen warum? Meine Absicht ist, irgendwie ein Zugangsmarker zu schaffen und es mit params (im Bündel) zu senden, um ein Foto hochzuladen. – TharakaNirmana