我想张贴在朋友的墙上并遇到困难。
首先我把照片上传到了我的墙上:
Request.Callback requestCallback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
if (response.getError() != null) {
Log.d("exception","error");
}
Object graphResponse = response.getGraphObject().getProperty("id");
if (graphResponse == null || !(graphResponse instanceof String)) {
Log.d("exception","not upload image");
} else {
String fbPhotoAddress = "https://www.facebook.com/photo.php?fbid=" +graphResponse;
Log.d("exception","fb="+fbPhotoAddress);
}
}
};
try {
Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), image, requestCallback);
request.executeAsync();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
我不知道将如何使用此链接(fbPhotoAddress)。我阅读了关于Feed对话框,它在200x200px中拍摄了照片。
我该怎么做?
答案 0 :(得分:0)
如果您不需要使用facebook sdk,则可以使用以下代码:
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("image/png");
// gets the list of intents that can be loaded.
List<ResolveInfo> resInfo = activity.getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()){
for (ResolveInfo info : resInfo) {
if (info.activityInfo.packageName.toLowerCase().contains("facebook") ||
info.activityInfo.name.toLowerCase().contains(type) ) {
share.putExtra(Intent.EXTRA_SUBJECT, subject);
share.putExtra(Intent.EXTRA_TEXT, text);
share.setPackage(info.activityInfo.packageName);
share.putExtra(Intent.EXTRA_STREAM, imageUri);
found = true;
break;
}
}
if (!found){
Toast.makeText(activity, type+" is not installed on the device", Toast.LENGTH_SHORT).show();
return;
}
activity.startActivity(Intent.createChooser(share, "Select"));
但是如果你使用的是facebook sdk,你可以像下面这样使用FacebookDialog但是你需要与facebook集成以便阅读它:
FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(activity)
.setLink(link)
.setApplicationName(AppConstants.FACEBOOK_DISPLAY_APP_NAME)
.setPicture(pictureUrl)
.setName(subject)
//.setDescription(text)
.build();
您还需要问问自己为什么将这张照片添加到您的Facebook帐户中,如果您因为没有照片的网址(本地照片)而这样做,那么使用Facebook网址将无法使用,因为此网址为不公开。如果你测试它,你会发现这个网址会查看你的Facebook页面上的照片,所以你需要在任何像AWS这样的服务器上传你的照片,然后使用照片网址,你可以进行共享。