AndroidでFacebookに画像とテキストを共有する正しい方法は何ですか?例えば事前入力されたテキストを含む画像。
これは、ネイティブのAndroid共有インテントで説明されているように ここ からは不可能であることに気付きました。画像またはリンクのみを取得できるため、両方を取得することはできません。
また、私はfacebook-sdk-3.14を次のように使用してみました:
FacebookDialog.ShareDialogBuilder
しかし、これはリンクの共有専用であることがわかりました。
私も試しました:
createShareDialogBuilderForPhoto()
ただし、これは画像の共有専用です。
SDKに欠けているものはありますか? FacebookDialogからは不可能だと思いますか?
Facebookで独自のアプリを作成し、独自のオープングラフアクションを実行する必要がありますか?理想的には、ログインボタンがないを探しています。
私も同様の質問を見ましたが、ほとんどは共有の意図に関するものであるか、それがsdkである場合、少なくとも1年は古く、解決策はこれに似たものです。
Bundle parameters = new Bundle();
parameters.putString("message", category_item_name_desc.getText().toString());
parameters.putString("picture", categoryItemsModel.getImageUrl());
parameters.putString("caption", txtDescription_desc.getText().toString());
facebook.request("/me/feed", parameters, "POST");
フィードダイアログ(WebDialog)で試してみましたが、「エラー(#324)にはファイルのアップロードが必要です」というメッセージが表示されます。ヘルプがあれば便利です。
ログインなしで現在のFacebookSDK(当時は3.14.1)を使用してこれを自分で行うことができ、選択リストに追加するための共有インテントにしました。
https://github.com/b099l3/FacebookImageShareIntent にデモプロジェクトがあります。依存関係はfacebook sdkのみであり、1つのアクティビティに含まれています。
Facebook、Twitter、Gmailで画像を共有できます。
Bitmap b =BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
Intent share = new Intent(Intent.ACTION_SEND);
share.setType(“image/jpeg”);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(getContentResolver(), b, “Title”, null);
Uri imageUri = Uri.parse(path);
share.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(share, “Select”));
私のライブラリを見てください: https://github.com/antonkrasov/AndroidSocialNetworks
それの助けを借りて、投稿は本当に簡単です:
mSocialNetworkManager.getFacebookSocialNetwork().postMessage(String message)
mSocialNetworkManager.getFacebookSocialNetwork().postPhoto(File path...)