如何在 android 应用程序上使用 facebook 对服务器上的用户进行身份验证
Posted
技术标签:
【中文标题】如何在 android 应用程序上使用 facebook 对服务器上的用户进行身份验证【英文标题】:How to authenticate users on server using facebook on android app 【发布时间】:2016-10-29 18:37:46 【问题描述】:我正在构建一个适用于服务器的 android 应用。服务器需要完成所有工作。我想让我的用户创建帐户并使用 facebook 进行连接。
我不知道我需要在数据库中保留哪些关于用户的信息,以便在他更换手机、重新安装应用程序或任何会修改他的 Facebook 令牌的情况下对他进行身份验证。
我不知道我是否足够清楚我对 facebook auth 有点困惑:/
【问题讨论】:
如果用户更换设备应该没有问题。但是您可以保存 facebook api 提供的用户 ID。 【参考方案1】:这是获取 facebook 用户 ID 的方法:
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this);
setContentView(R.layout.activity_main);
callbackManager = CallbackManager.Factory.create();
login = (LoginButton) findViewById(R.id.btn_login);
login.setReadPermissions("email", "public_profile");
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>()
@Override
public void onSuccess(LoginResult loginResult)
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback()
@Override
public void onCompleted(JSONObject object, GraphResponse response)
String id = object.getString("id");
// some database stuff here
// ...
);
request.executeAsync();
@Override
public void onCancel()
@Override
public void onError(FacebookException error)
Log.d("ERROR", error.toString());
Toast.makeText(MainActivity.this, "Couldn't login, pleasy try again!", Toast.LENGTH_SHORT).show();
);
【讨论】:
非常感谢,只是不知道 facebook 可以提供的 ID,也感谢代码 :) 你把它放在 onCreate() 中,这只有在我按下按钮时才有效? 按钮是由 Facebook-Api 提供的LoginButton
。以上是关于如何在 android 应用程序上使用 facebook 对服务器上的用户进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Facebook 中从 IOS 应用程序共享产品详细信息
Facebook Android SDK 4.0:newGraphPathRequest 返回“必须使用活动访问令牌来查询有关当前用户的信息。”