我一直在探索Facebook文档,但仍未找到如何办理登机手续或分享地点。大多数答案已经弃用,我需要使用更新的Facebook SDK来实现。我在文档中遗漏了什么吗?或者我必须使用第三方应用程序???除了使用SDK共享的主要方式之外,我还知道如何在Facebook上共享媒体内容时使用ACTION_SEND,是否可以在那里插入一个位置参数?
答案 0 :(得分:1)
如果您使用的是Facebook分享按钮,那就像这样
ShareContent sharecontent = new ShareLinkContent.Builder()
.setPlaceId("141887372509674")
.build();
btnfacebookshare.setShareContent(sharecontent);
在ShareContents上放置一个placeID
还有可以与setPlaceId()一起使用的ShareContent子类,如SharePhotoContent,ShareVideoContent和ShareOpenGraphContent。
在文件(https://developers.facebook.com/docs/reference/android/current/class/ShareLinkContent/)中没有明确说明,但是通过实验我想出了它
答案 1 :(得分:0)
需要使用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();