facebook发布朋友墙上的照片

时间:2014-03-17 07:51:28

标签: android android-facebook

我想张贴在朋友的墙上并遇到困难。

首先我把照片上传到了我的墙上:

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中拍摄了照片。

我该怎么做?

1 个答案:

答案 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这样的服务器上传你的照片,然后使用照片网址,你可以进行共享。