0

如何在 Facebook 上发布带有文字的图片?我知道如何发布文本、链接,但我也想发布图片。

这是我尝试过的:

 byte[] data = null;
 Bitmap bi = BitmapFactory.decodeFile("R.drawable.plate1");
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
 bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 data = baos.toByteArray();
 parameters.putByteArray("picture", data);

 int plate = getResources().getIdentifier("com.b2creativedesigns.eyetest:drawable/plate1", null, null);
 parameters.putString("picture", String.valueOf(plate)); 

它们都不起作用。当我尝试发布时,没有任何反应。什么都没有发布。使用下面的代码,它可以工作。

从网站发布图像很容易,但是当网站关闭或链接被修改时,它就不起作用了。

  parameters.putString("picture", "https://lh3.ggpht.com/f79UCpnLisZxO2P2C43f55YLvFpNco_cTcC-t9Ck-Qmqe5jwKbfnUvCh5N6-Te-mOw=w124");

第三个例子:

  byte[] data = null;
  Bitmap bi = BitmapFactory.decodeFile("R.drawable.plate1");
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  data = baos.toByteArray();
  parameters.putString("method", "photos.upload");
  parameters.putByteArray("picture", data);
4

2 回答 2

3
Session.openActiveSession(activity, true,
                            new Session.StatusCallback() {
                                @Override
                                public void call(Session session,
                                        SessionState state,
                                        Exception exception) {
                                    // TODO Auto-generated method stub
                                    if (session.isOpened()) {
                                        fbSession = session;
    Bundle bundle = new Bundle();
    bundle.putString("caption", "Check this out, what do you think?");
    bundle.putString("name", name);
    bundle.putString("description", description);
    bundle.putString("picture", image);
    new WebDialog.FeedDialogBuilder(HomeActivity.this, session, bundle)
            .build().show();
                                    }
                                }

                            });

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    default:
        if (Session.getActiveSession() != null)
            Session.getActiveSession().onActivityResult(this, requestCode,
                    resultCode, data);
        break;
    }
}

将此代码添加到您的 Android 清单文件中,将您的 facebook id 放在 FB_AppID 的位置。

<activity android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/><meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/FB_AppID"/>
于 2015-09-10T08:11:20.053 回答
0

编辑:对不起,我不应该就如何使用 REST API 提供建议,因为它已被弃用。这就是您使用 Graph API 将照片上传到自己的墙上的方式。

Bundle params = new Bundle();
params.putByteArray("photo", data);
params.putString("caption", "Test photo upload");
    mAsyncRunner.request("me/photos", params, "POST",
    new PhotoUploadListener(), null);

请试试这个,看看它是否有效。这是直接从我们文档中的 HackBook 示例中提取的。对于图像的压缩,您可以Utility.scaleImage在我们的 SDK 中使用我们的方法,该方法将执行所有压缩和缩放以匹配 Facebook 的标准。

==================================================== =================================

原始信息:

photos.upload正在使用 REST API 并且已被弃用,因此我建议使用 Graph API 上传照片,但这是使用 REST API 的快速而肮脏的解决方案。

将字节数组放入变量中data后,请执行以下操作:

Bundle params = new Bundle();
params.putString("method", "photos.upload");
params.putByteArray("picture", data);
mFacebook.request(params);

让我知道这是否有帮助。

于 2012-08-13T00:11:37.533 回答