Anu*_*pam 17 android facebook-android-sdk android-facebook
我一直在通过Facebook最新的SDK即3.0进行一些登录项目.我在获取用户访问令牌方面遇到了困难.我在互联网上搜索了所有,最大的结果是使用了旧的SDK.以下是我从Facebook Android SDK教程中获取的一些代码:
public class LoginActivity extends Activity implements OnClickListener {
Button login;
TextView accessToken;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
login = (Button) findViewById(R.id.login);
accessToken = (TextView) findViewById(R.id.accessToken);
login.setOnClickListener(this);
}
@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 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() + "!");
}
}
});
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
登录成功,我可以在应用程序中看到用户名,如Facbeook教程所示.
我尝试过旧方法,但现在都已弃用.请指导我获取用户访问令牌.帮助将不胜感激.
谢谢.
Eri*_*iaz 40
在onResume()方法中添加以下代码(在本例中我使用Toast.makeText来查看登录后的令牌访问):
Session session = Session.getActiveSession();
if (session.isOpened()) {
Toast.makeText(getActivity(), session.getAccessToken(), Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
我使用了getActivity,因为在我的情况下它是在Fragment中,如果你在Activity中有你的登录按钮使用"this"而不是"getActivity()"
ast*_*ter 33
注意:在新的Facebook sdk中删除了会话类
之后Facebook SDK version 4.X,您应该使用以下内容:
AccessToken token = AccessToken.getCurrentAccessToken();
if (token != null) {
Toast.makeText(getActivity(), token, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
我是Android的新手..
我正在使用以上代码仅获取令牌。
对于Facebook SDK 4.21.0
编译'com.facebook.android:facebook-android-sdk:4.21.0'
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
AccessToken token = AccessToken.getCurrentAccessToken();
Log.d("access only Token is", String.valueOf(token.getToken()));
String facebook_id_token = String.valueOf(token.getToken());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62591 次 |
| 最近记录: |