Facebook有{em>非常好的文档为Android, iOS & JavaScript
等集成SDK。但我仍然看到有关集成Facebook SDK的确切方法的一些混淆或误解。
所以我正在编写所有指向步骤,以将Facebook SDK集成到Android Native应用程序中,并使用Graph API等。
在文档中,他们以文档的方式对其进行了解释。
在这里,我试图解释在我们的应用程序中集成时我们需要它们的步骤。
我将回答我们得到的最多疑问,大多数错误等等。
我希望有一天能帮到某人。
答案 0 :(得分:1)
Facebook提供了广泛的选项,可以通过集成其SDK来完成。但是我们需要遵循一些适当的步骤。
我们需要做的第一件事是Login
,在我们的应用开始使用Facebook SDK之前,我们需要做authentication
。在我们的应用程序开始从
这可以通过两种方式完成,
a)通过原生Android应用
如果用户在手机中安装了Facebook应用,那么他们将被要求通过他们在Facebook应用中登录的帐户进行登录。
b)通过网络视图
如果用户没有Facebook应用程序,则会在网络浏览器中打开Facebook登录页面,用户可以登录他们的帐户。
因此,通过这两个选项中的任何一个,一旦用户登录,您的应用就会经过身份验证以在您的应用中使用他们的帐户。
如何操作
Once you include Facebook SDK & Library project in your own Android app然后您只需将其内置窗口小部件放入任何xml
文件中,您就会看到“登录”按钮。它的代码很简单,
<com.facebook.widget.LoginButton
android:id="@+id/authButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
/>
只需在XML文件中包含上述代码(您希望在哪里显示Facebook登录按钮。)它将自动创建如下所示的“登录”按钮,
在此阶段我们的想法/怀疑/疑问
Q值。如何在我自己的应用程序中创建这样的按钮?我将从哪里获得徽标或它有什么颜色等等。
答。我们不需要自己创建它,我们只需将该小部件放在我们的代码中,按钮就会自动创建。
好的,很好,我们已经包含了Facebook登录按钮,现在用户可以登录我们的应用程序,接下来是什么?
下一页Facebook提供了许多我们可以做的选项,例如在他们的个人资料上分享内容,发布状态或自定义故事,获取用户喜欢的页面,访问他们的消息,帖子,提要,朋友列表等等等等等等等等等等
但是用户使用他们的帐户登录不喜欢,我们可以使用他们的Facebook帐户在我们的应用中执行任何操作。
下一个采取行动的术语是Permissions
要执行特定任务,我们需要相关许可,如果用户授予您使用Facebook帐户的权限,则只有我们的应用才能执行此操作。
例如,要访问用户,我们需要user_likes
权限,代表用户在其个人资料上发布内容我们需要publish_actions
权限等Complete list of permissions can be found here
因此,在身份验证之后,接下来就是授权。我们的应用授权用户的帐户。
如何获得权限
由于我们已经使用他们的按钮小部件为facebook创建了一个Login按钮,现在我们可以将权限作为列表提供给该按钮,因此当用户登录时,它将让用户知道他们想要的权限。帐户。
清除疑点
是的,用户将在登录时被告知您的应用对他们有什么权限。您可以说,用户将被告知您的应用可以使用他们的Facebook帐户做什么,例如访问他们的朋友列表,在他们的个人资料上发布内容,阅读联系人等。但是用户可能会或可能不会阅读它,但登录按钮让他们知道一切。
如何向Facebook登录按钮添加权限
LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setReadPermissions(Arrays.asList("user_likes", "user_status", "publish_actions"));
所以你可以看到我们提供了我们想要的权限列表。但是,甚至可以在以后要求更多权限,因此建议在用户需要时首先请求基本权限并询问诸如publish_actions之类的权限。
会话是一个非常常见的术语,主要用于Web应用程序。它在这里起到类似的作用。一旦用户使用他们的Facebook帐户登录,就会在您的应用程序中使用Facebook创建Session
,并且该用户将一直保留到用户退出。
问。如何显示Facebook注销按钮?
答。您将非常高兴听到这一点,您不需要做任何事情来显示注销按钮,一旦用户登录,登录按钮就会自动更改为注销按钮。
会话的好处
会话对象具有authentication token
,使我们能够使用Facebook SDK执行任何操作。
我们可以通过调用以下方法随时获取facebook会话对象,
Session session = Session.getActiveSession();
虽然我们已经完成了所有步骤,但是我们需要正确地维护会话,那么我们将需要这个类。我们只需要将它放在我们所有的活动生命周期方法中 以便相应地维护facebook会话。
在您的活动中定义一个实例变量,
private UiLifecycleHelper uiHelper;
然后添加以下代码
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uiHelper = new UiLifecycleHelper(getActivity(), callback);
uiHelper.onCreate(savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
uiHelper.onResume();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onPause() {
super.onPause();
uiHelper.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
uiHelper.onDestroy();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
uiHelper.onSaveInstanceState(outState);
}
现在,facebook会话将自动维护而不会让您头疼。
我将在这里为您提供一个非常简单和基本的示例,假设我们想要获取用户喜欢的页面列表,然后我们可以使用以下代码执行此操作,
Session session = Session.getActiveSession();
new Request(
session,
"/me/likes",
null,
HttpMethod.GET,
new Request.Callback() {
public void onCompleted(Response response) {
//Do what you want to with the response
}
}
).executeAsync();
问。如何获取与当前用户相关的数据?我们还没有提到任何用户ID?
答。这个问题的答案是我们在这里使用me
对象,它将自动指向使用Facebook帐户登录的当前用户。