web-dev-qa-db-ja.com

Facebook SDKを使用せずにFacebookでIntentを介してテキストを共有する

Facebookは、Facebook SDKを使用しない限り、Intentを介したテキストの共有を許可しないため、これを実現する方法を探しています。

私が使用できる3つのハックを考えることができます:

1)Facebookでは画像共有が許可されているため、共有テキストが描画されたBitmapを生成し、Intentを使用して画像を共有できます。

2)Facebookでは、URLの共有が許可されています。このため、共有中にページのHeadも表示されます。サーバーで専用ページをホストし、URLのパラメーターとして値を渡し、それを使用してHeadを生成できます(PHPの経験はありませんが、これは可能だと思います)

3)テキストをクリップボードにコピーし、これをユーザーに通知します。

[〜#〜]または[〜#〜]

3つすべての組み合わせを使用します。

Facebook sdkを使用せずにFacebookでコンテンツを共有するより良い方法を教えていただけますか?

前もって感謝します。

30
Hemanth

Android shareIntent。]を使用して、Facebookでテキストのみを共有する方法はありません。

共有リンク機能を使用してFacebook SDKを介してのみ可能です。

Facebookは、画像がある場合、意図からの余分なテキストを単に無視します。画像を共有できますが、テキストコンテンツを共有することはできません。

残念ながら、Facebookの共有インテントは、http://のプレフィックスが付いた単一のURLのみを受け取り、追加のテキストメッセージは受け取りません。実際、facebookはテキストコンテンツを取り除き、URL /リンクのみを許可します。それは設計によるものであり、それを制御することはできません。

これは動作します

Intent sharingIntent = new Intent(Android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "http://www.google.com");
startActivity(Intent.createChooser(sharingIntent, "Share via"));

これは機能しません。

Intent sharingIntent = new Intent(Android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Share Text from App");
startActivity(Intent.createChooser(sharingIntent, "Share via"));

Facebook SDKを使用しているのは、Facebookでテキストを共有できる唯一の方法です。

参照リンク

facebookのAndroid共有インテント-テキストとリンクの共有

Android Share Intent を介してテキストをリンクと共有できません

AndroidとFacebookの共有インテント

48

この関数を使用して、それが役立つことを願っています

public static void share(Context context, String text, String subject, String title, String dialogHeaderText) {
    Intent intent = new Intent(Android.content.Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Android.content.Intent.EXTRA_SUBJECT, subject);
    intent.putExtra(Android.content.Intent.EXTRA_TEXT, text);
    intent.putExtra(Intent.EXTRA_TITLE, title);
    context.startActivity(Intent.createChooser(intent, dialogHeaderText));
}
4
Hassan Jamil

まず、FBでテキストを共有するには、FB SDKを使用する必要があります。

FB SDKを使用しない場合は、「OG」データを含む専用のWebサイトにアクセスすることをお勧めします。これは自動的に解決されます。これにより、変更が必要になったときにOGデータを変更できます。

ハック番号2に進むことをお勧めします。しかし、このアプローチでは、FBはユーザーがリンクをクリックしてWebサイトにリダイレクトできるようにするため、要件に応じてこれを処理することができます。

これで明確になることを願っています。

OGの詳細については、こちらを確認してください グラフの詳細を開く

4
Karthik Kumar

このコードを使用すると、facebookにのみコンテンツを貼り付けることができます。あなたの携帯電話に存在するすべてのアプリのリストを取得し、すでに存在している場合は開いているFacebookアプリを見つけて開く

        Intent shareIntent = new Intent(Android.content.Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Android.content.Intent.EXTRA_TEXT, "text to be shared");
        PackageManager pm = getPackageManager();
        List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
        for (final ResolveInfo app : activityList) {
            if ((app.activityInfo.name).contains("facebook")) {
                final ActivityInfo activity = app.activityInfo;
                final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
                shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                shareIntent.setComponent(name);
                startActivity(shareIntent);
                break;
           }
        }
3

これをチェックして :

Intent share=new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, "Some text you would like to share...");
share.setPackage("com.facebook.katana"); //Facebook App package
startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));

このコードでfacebook SDKは必要ありません......

UXを強化するには、Facebook App(またはFacebookLite App)ウェアがインストールされているかどうかを確認できます...

3
RRTW

ネイティブインテントを使用する場合、インテントからのデータを使用するかどうかは、ユーザーが共有するアプリ次第です。

これは既知のバグであり、facebookはこのバグをウィッシュリストに追加しました。たぶん、彼らはそれを修正しようとしていません。これは、人々がFB SDKを使用できるようにするためのものです。このリンクを参照してください http://forum.developers.facebook.net/viewtopic.php?id=939 およびこれ post

http://forum.developers.facebook.net/viewtopic.php?id=939

0
bpr10