如何使用 Facebook SDK 4.0 分享或添加地点或签到?
How can I share or add a place or Check-in using Facebook SDK 4.0?
我一直在浏览 Facebook 文档,但仍未找到有关如何签到或共享地点的信息。大多数答案已被弃用,我需要使用更新的 Facebook SDK 来实施。我错过了文档中的某些内容吗?还是我必须使用第三方应用程序???除了使用 SDK 分享的主要方式外,我还知道如何使用 ACTION_SEND 在 facebook 上分享媒体内容,是否可以在那里插入一个 place 参数?
如果您使用的是 Facebook 分享按钮,它会像这样
ShareContent sharecontent = new ShareLinkContent.Builder()
.setPlaceId("141887372509674")
.build();
btnfacebookshare.setShareContent(sharecontent);
在 ShareContents 上放置一个 placeID
还有一些 ShareContent 子类可以与 setPlaceId() 一起使用,例如 SharePhotoContent、ShareVideoContent 和 ShareOpenGraphContent。
文档中没有明确说明 (https://developers.facebook.com/docs/reference/android/current/class/ShareLinkContent/) 但通过实验我想出了它
需要使用 GraphRequest
请求 placeId,可以使用以下方法完成:
String facebookUrl = "https://www.facebook.com/mybusiness";
final String PAGE_ID_FROM_URL = facebookUrl.substring(facebookUrl.lastIndexOf("/") + 1, facebookUrl.length());//now PAGE_ID_FROM_URL = mybusiness
//request for page id
new GraphRequest(AccessToken.getCurrentAccessToken(), "/"+ PAGE_ID_FROM_URL , null, HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
JSONObject obj = response.getJSONObject();
if (obj.has("id")) {
try {
String pageID = obj.getString("id");
ShareDialog share = new ShareDialog(MyActivity.this);
ShareContent shareContent = new ShareLinkContent.Builder().setPlaceId(pageID).setPageId(pageID).build();
share.show(shareContent, ShareDialog.Mode.AUTOMATIC);
} catch (JSONException e) {
e.printStackTrace();
}
}
}).executeAsync();
我一直在浏览 Facebook 文档,但仍未找到有关如何签到或共享地点的信息。大多数答案已被弃用,我需要使用更新的 Facebook SDK 来实施。我错过了文档中的某些内容吗?还是我必须使用第三方应用程序???除了使用 SDK 分享的主要方式外,我还知道如何使用 ACTION_SEND 在 facebook 上分享媒体内容,是否可以在那里插入一个 place 参数?
如果您使用的是 Facebook 分享按钮,它会像这样
ShareContent sharecontent = new ShareLinkContent.Builder()
.setPlaceId("141887372509674")
.build();
btnfacebookshare.setShareContent(sharecontent);
在 ShareContents 上放置一个 placeID
还有一些 ShareContent 子类可以与 setPlaceId() 一起使用,例如 SharePhotoContent、ShareVideoContent 和 ShareOpenGraphContent。
文档中没有明确说明 (https://developers.facebook.com/docs/reference/android/current/class/ShareLinkContent/) 但通过实验我想出了它
需要使用 GraphRequest
请求 placeId,可以使用以下方法完成:
String facebookUrl = "https://www.facebook.com/mybusiness";
final String PAGE_ID_FROM_URL = facebookUrl.substring(facebookUrl.lastIndexOf("/") + 1, facebookUrl.length());//now PAGE_ID_FROM_URL = mybusiness
//request for page id
new GraphRequest(AccessToken.getCurrentAccessToken(), "/"+ PAGE_ID_FROM_URL , null, HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
JSONObject obj = response.getJSONObject();
if (obj.has("id")) {
try {
String pageID = obj.getString("id");
ShareDialog share = new ShareDialog(MyActivity.this);
ShareContent shareContent = new ShareLinkContent.Builder().setPlaceId(pageID).setPageId(pageID).build();
share.show(shareContent, ShareDialog.Mode.AUTOMATIC);
} catch (JSONException e) {
e.printStackTrace();
}
}
}).executeAsync();