【发布时间】:2017-07-28 13:27:29
【问题描述】:
我想获取 Facebook 帖子图片的 Url。我已使用 logInWithPublishPermissions 在 Facebook 上成功发布了照片,但我希望在回调中使用帖子图片的链接或 Url....
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(bitmap)
.setCaption("VodaFone Rakshavandhan!")
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
ShareDialog shareDialog = new ShareDialog(FacebookShareActivity.this);
shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Log.e("@@@result", String.valueOf(result));
/* "/"+mFBID+"_"+postid+"?fields=link,message",*/
String postid=result.getPostId().toString();
mUrlFb="https://www.facebook.com/photo.php?fbid="+postid;
Log.e("@@@mUrlFb",mUrlFb);
GraphRequest request = new GraphRequest(
accessToken,
"/"+mFBID+"_"+postid,
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.e("@@response", String.valueOf(response));
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,link,message");
request.setParameters(parameters);
request.executeAsync();
/* new GraphRequest(
AccessToken.getCurrentAccessToken(),
result.getPostId(),
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.e("@@response", String.valueOf(response));
}
}
).executeAsync();*/
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
e.printStackTrace();
}
});
我收到了来自这个图表请求的响应
{Response: responseCode: 200, graphObject:
{"id":"104752556880730_105851436770842"}, error: null}
任何帮助表示感谢。
【问题讨论】:
-
您需要获取您在响应中获得的帖子 ID,并使用该 ID 发出 API 请求,请求该帖子的
permalink_url字段。 -
仔细阅读this,有一个名为“链接”的字段 - Facebook 上照片的链接
-
@CBroe 非常感谢先生,它运行良好。我在请求中传递了唯一的 permalink_url,它会回复我,我要再次感谢。
-
嗨,arjun,你如何获得 postId?我的总是 null :(
-
@Freya 您需要从 facebook 获得 publish_action 的许可,然后在共享对话框的注册回调中使用上面的代码
标签: java android facebook facebook-graph-api