অ্যাকশন_এসইএনডি এর মাধ্যমে অ্যান্ড্রয়েড অ্যাপ থেকে ফেসবুকে পাঠ্য ভাগ করুন


91

আমার কাছে একটি অ্যান্ড্রয়েড অ্যাপ রয়েছে এবং এটি অন্যান্য অ্যাপ্লিকেশনগুলির মাধ্যমে পাঠ্য প্রেরণকে সমর্থন করে। এটি তাই ACTION_SENDঅভিপ্রায় এবং EXTRA_TEXTক্ষেত্রটি ব্যবহার করে । চয়নকারী আমাকে এমন সমস্ত অ্যাপ্লিকেশন সহ উপস্থাপন করে যা এই জাতীয় উদ্দেশ্য পরিচালনা করতে পারে। সেগুলি হল টুইটার, ইমেল, ... এবং ফেসবুক। তবে আমি যখন ফেসবুক নির্বাচন করি তখন এটি ব্রাউজারটি খোলে এবং নিম্নলিখিত পৃষ্ঠায় যায়:

http://m.facebook.com/sharer.php?u=mytext

এটি আমার পাঠ্য এবং জমা বোতামটি দেখায়। তবে আমি সাবমিট বাটন টিপলে কিছুই হয় না। পৃষ্ঠাটি আবার লোড হয়। আমি মনে করি কেবলমাত্র ফেসবুক অ্যাপের মাধ্যমে ইউআরএল প্রেরণ করা সম্ভব। তা কি হতে পারে?

কেউ কি ACTION_SENDফেসবুক অ্যান্ড্রয়েড অ্যাপের মাধ্যমে পাঠ্য প্রেরণ পরিচালনা করেছেন ?


4
আপনি যদি এই এসও পোস্টটি দেখে যান এবং হতাশ হয়ে আছেন যে ফেসবুক অ্যাপটি যথাযথভাবে অ্যাকশন_এসইএনডি সমর্থন করে না তবে দয়া করে আপনার পোস্টটি নিম্নলিখিত বিষয়টিতে
ত্রুটি 454

7
আমি অনুমান করছি 21-3-2012 এখনও সমাধান হয়নি? কারণ আমি এটি কাজ করতে পারি না ..
দিয়েগো

4
বিকাশকারীদের.ফেসবুক. com/bugs/332619626816423 - মনে হচ্ছে ফেসবুক ডিজাইন দলটি এটিকে বন্ধ করে দিয়েছে কারণ কোনও বার্তা প্রি-ফিলিং করা তাদের নীতিবিরোধী :(
ব্রেট

4
@ ব্র্যাট এটি হাস্যকর বিষয়। তারা আপনাকে আপনার প্রকল্পে তাদের এসডিকে যুক্ত করতে চায়।
theblang

4
মে 17, 2015 - এখনও ফেসবুক নিয়ে কাজ করছে না।
ফয়সাল আসিফ

উত্তর:


11

সম্পাদিত: অ্যান্ড্রয়েডের অফিশিয়াল ফেসবুক অ্যাপ্লিকেশনটির নতুন প্রকাশের সাথে (14 জুলাই 2011) আইটি ওয়ার্কস !!!

ওল্ড: উপরের উদাহরণগুলি ব্যবহার করে যদি ব্যবহারকারী ভাগ করার জন্য ফেসবুক অ্যাপ্লিকেশনটি বেছে নেয় তবে ব্যবহারকারীরা ফেসবুকে পোস্ট করার জন্য সিসমিক অ্যাপটি বেছে নিলে তারা কাজ করে। আমার ধারণা সিসমিকের ফেসবুকের চেয়ে ফেসবুক এপিআইয়ের আরও ভাল বাস্তবায়ন হয়েছে!


ফেসবুক সংস্করণ 1.6.1 এ এটি কাজ করছে না, এবং পাঠানোর সময় কিছু অতিরিক্ত বাগ রয়েছে বলে মনে হচ্ছে!
বসে

এটা কাজ শুরু! সমস্যা কি ছিল জানি না। ধন্যবাদ এটি এফবি ভি 1.6.1 এর সাথেও কাজ করে।
বসে

8
এই উত্তরটি ফেসবুক অ্যাপ্লিকেশনটির
১.6.২

51

ফেসবুক অ্যাপ্লিকেশনটির সাথে ভাগ করে নেওয়ার জন্য আপনার কেবল কমপক্ষে একটি লিঙ্ক থাকা দরকার:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Wonderful search engine http://www.google.fr/");
startActivity(Intent.createChooser(intent, "Share with"));

এটি সঠিক ভাগ করে নেওয়ার উইন্ডোটি দেখায় তবে আপনি যখন ভাগ করে নেওয়ার জন্য ক্লিক করেন তখন কিছুই সুখী হয় না (আমি অফিসিয়াল টুইটার অ্যাপের সাথে চেষ্টাও করেছি, এটি কার্যকর হয় না)।

ফেসবুক অ্যাপ্লিকেশন ভাগ করে নেওয়ার কাজটি করার জন্য আমি খুঁজে পেলাম যে কোনও পাঠ্য ছাড়াই কেবল একটি লিঙ্ক ভাগ করে নেওয়া:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "http://www.google.fr/");
startActivity(Intent.createChooser(intent, "Share with"));

এটি নীচের উইন্ডোটি প্রদর্শন করবে এবং ভাগ করুন বোতামটি কাজ করবে:

ফেসবুক শেয়ার

স্পষ্টতই এটি ভাগটি জনপ্রিয় করার জন্য লিঙ্ক থেকে স্বয়ংক্রিয়ভাবে একটি চিত্র এবং পাঠ্য নেয়।

আপনি যদি কেবল পাঠ্যটি ভাগ করতে চান তবে আপনাকে ফেসবুক এপিআই ব্যবহার করতে হবে: https://github.com/facebook/facebook-android-sdk


4
"ওয়ান্ডারফুল সার্চ ইঞ্জিন" পাঠ্যটি কোথায়? উপরে যে একই বাগ লোকেরা রিপোর্ট করছে, তাই না?
কাইল ক্লিগ

4
তিনি বলছেন আপনি কেবল একটি লিঙ্ক পোস্ট করতে পারেন। কোনও পাঠ্য নেই। "ওয়ান্ডারফুল সার্চ ইঞ্জিন" পাঠ্যটি কাজ করার জন্য বের করতে হয়েছিল।
চুবসন্ডবস

আপনি উত্তরটি আপডেট করলে আমি +1 করব। এখন পর্যন্ত Facebookঅ্যাপটি এর মতো স্ট্রিং থেকে লিঙ্কটি সঠিকভাবে টানবে Wonderful search engine http://www.google.fr/। নোট করুন যে আমি বলেছিলাম লিঙ্কটি টানুন , এটি এখনও পাঠ্যের সাথে কিছু করবে না। এছাড়াও, Twitterপাঠ্য এবং লিঙ্ক উভয়ের সাথেই কাজ করে।
theblang

45

06/2013:

  • এটি আপনার কোড নয়, ফেসবুকের একটি বাগ
  • ফেসবুক এই ত্রুটিটি ঠিক করবে না , তারা বলে যে এটি "ডিজাইনের মাধ্যমে" যে তারা অ্যান্ড্রয়েড শেয়ার সিস্টেমটি ভেঙেছে: https://developers.facebook.com/bugs/332619626816423
  • এসডিকে ব্যবহার করুন বা কেবলমাত্র ইউআরএল ভাগ করুন।
  • টিপস: পোস্টের পাঠ্য হিসাবে ওয়েব পৃষ্ঠার শিরোনামটি ব্যবহার করে আপনি কিছুটা ঠকাতে পারেন।

28
অনেক ধন্যবাদ ফেসবুক </
sarcasm

আমাদের মনোযোগ আকর্ষণ করার জন্য @ লোডাকে ধন্যবাদ
জিগার

28

প্রথমে আপনার প্রশ্নের সমাধান করতে হবে হ্যান্ডলার ভাগ করে নেওয়ার বিকল্পটি। তারপরে প্যাকেজটির নামটি ফিল্টার করতে ব্যবহার করুন তারপরে আমাদের কাছে কেবলমাত্র একটি হ'ল হ্যান্ডলার ভাগ করে নেওয়ার বিকল্প রয়েছে!

ফেসবুকের মাধ্যমে শেয়ার করুন

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Content to share");
PackageManager pm = v.getContext().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);
        v.getContext().startActivity(shareIntent);
        break;
   }
}

বোনাস - টুইটারের মাধ্যমে ভাগ করুন

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Content to share");
PackageManager pm = v.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
for (final ResolveInfo app : activityList) {
    if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
        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);
        v.getContext().startActivity(shareIntent);
        break;
   }
}

এবং আপনি যদি অন্য ভাগ করে নেওয়ার অ্যাপ্লিকেশনটির মাধ্যমে কীভাবে ভাগ করতে চান তা সন্ধান করতে চান তবে সেখানে এটি ব্লগ করুন - অ্যান্ড্রয়েডের মাধ্যমে অ্যাডভান্স শেয়ার করুন


13
আপনি এখনও ফেসবুক এবং টুইটারে পাঠ্য (কেবল লিঙ্ক) ভাগ করতে পারবেন না এমন উপায়গুলি ব্যবহার করে। অ্যান্ড্রয়েডের জন্য আপনাকে অবশ্যই এসডিকে ফেসবুক (টুইটার) ব্যবহার করতে হবে।
সিক্রেটলম

হ্যালো, আমি এটি চেষ্টা করেছি, কিন্তু এটি বার্তাটি প্রদর্শন করে নি যা আমি ফেসবুকে এটি ভাগ করতে চাই ... কোনও ধারণা কেন? এটি আমাকে লগইন করতে বলে এবং "আপনার মনে কী আছে?" ইঙ্গিত পাঠ্যটি আসল পাঠ্যটি যা আমি এটি ভাগ করতে চাই তা নয়
রমেশ সাঙ্গিলি

এটি কাজ করে না। এটি সাধারণ (ডায়ালগ) অভিপ্রায় হিসাবে একই খালি ইনপুটটি দেখায়।
আইএমএক্স

4
তবে টুইটারে টেক্সট সহজে পোস্ট করা হয়
ত্রিকালদর্শী

4
ফেসবুকের পক্ষে কাজ করে না, এবং টুইটারে ভাগ করে নেওয়া সক্ষম করার জন্য উদ্দেশ্য উপাদানটি নির্ধারণ করার দরকার নেই।
জুউজাস কনটভেইনিস

11

সুতরাং আমার চারপাশে একটি কাজ রয়েছে তবে এটি ধরে নেয় যে আপনি যে পৃষ্ঠাটি ভাগ করছেন তাতে আপনার নিয়ন্ত্রণ রয়েছে ...

আপনি যদি আপনার EXTRA_TEXT এর মতো বিন্যাস করেন ...

String myText = "Hey!\nThis is a neat pic!";
String extraText = "http://www.example.com/myPicPage.html?extraText=\n\n" + myText;

... তারপরে ফেসবুকবিহীন অ্যাপ্লিকেশনগুলিতে আপনার পাঠ্যটি এরকম কিছু দেখা উচিত:

http://www.example.com/myPicPage.html?extraText=

আরে!
এটি একটি ঝরঝরে ছবি!

এখন আপনি যদি আপনার ওয়েবসাইটকে এমন আপডেট করেন যে অতিরিক্ত পাঠের ক্যোয়ারী প্যারামিটারের সাথে অনুরোধ করে তবে পৃষ্ঠার মেটা ডেটাতে এক্সট্রা টেক্সটের সামগ্রী ফিরে আসে return

<!-- Make sure to sanitize your inputs! e.g. http://xkcd.com/327/ -->
<meta name="title" content="Hey! this is a neat pic!">

তারপরে ফেসবুক যখন ডায়ালগটি তৈরি করতে সেই url এড়িয়ে যায়, তখন এটি শিরোনাম মেটা ডেটা পড়বে এবং এটিকে আপনার ভাগ করে নেওয়ার ডায়লগে এম্বেড করবে।

আমি বুঝতে পারি এটি একটি সুন্দর ইয়াক সমাধান, তাই লবণের একটি দানা নিয়ে নিন ...


(প্লাস ওয়ান) এক্স কেসিডি রেফারেন্সের জন্য।
আমির আবরো

2

দেখা যাচ্ছে যে ফেসবুক অ্যাপটি এই উদ্দেশ্যটি ভুলভাবে পরিচালনা করে। সবচেয়ে নির্ভরযোগ্য উপায়টি অ্যান্ড্রয়েডের জন্য ফেসবুক এপিআই ব্যবহার করা বলে মনে হচ্ছে।

এসডিকে এই লিঙ্কটিতে রয়েছে: http://github.com/facebook/facebook-android-sdk

'ব্যবহার' এর অধীনে, এটি রয়েছে:

একটি ফেসবুক সংলাপ প্রদর্শন করুন।

এসডিকে ব্যবহারকারীর ইন্টারঅ্যাকশনগুলির জন্য বেশ কয়েকটি ওয়েবভিউ এইচটিএমএল ডায়ালগ সমর্থন করে যেমন প্রাচীর পোস্ট তৈরি করা। কোনও নেটিভ অ্যান্ড্রয়েড ইউআই বাস্তবায়ন না করেই ফেসবুকের দ্রুত কার্যকারিতা সরবরাহ এবং এপিআইগুলি সরাসরি ফেসবুকে ডেটা পাস করার উদ্দেশ্যে এটির উদ্দেশ্য।

এটি করার সর্বোত্তম পদ্ধতির মতো দেখে মনে হচ্ছে - একটি ডায়ালগ প্রদর্শন করুন যা দেয়ালে পোস্ট করবে। একমাত্র বিষয়টি হ'ল তাদের প্রথমে লগ ইন করতে হতে পারে


আচ্ছা ঠিক আমি যা চাইছিলাম তা নয়। তবে যাইহোক ইঙ্গিতটির জন্য ধন্যবাদ। এই কাজটি করার জন্য আমার ফেসবুক শেয়ারের জন্য একটি পৃথক মেনু আইটেম যুক্ত করতে হবে ...
Goddchen

হ্যাঁ, আপনি কী বোঝাতে চেয়েছিলেন তা আমি বুঝতে পেরেছিলাম এবং এটি একটি দুশ্চরিত্রা কিন্তু আমার অ্যাপ্লিকেশনটিতে ACTION_SEND অভিপ্রায় নিয়ে আমার একই সমস্যা ছিল এবং ফেসবুক তাদের অ্যাপ্লিকেশনটি স্থির করেনি, তাই এটি সেরা বিকল্প বলে মনে হচ্ছে
এইচএক্সকেইন

4
আমি সবেমাত্র আরও কিছু অনুসন্ধান করেছি এবং দেখেছি যে এই সমস্যাটি নিয়ে ইন্টারনেটে সমস্ত লোক রয়েছে এবং ফেসবুক মোটেই সহায়তা করছে না। forum.developers.facebook.net/viewtopic.php?pid=255227
HXCaine

1
Check this out : By this we can check activity results also....
// Open all sharing option for user
                    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
                    sharingIntent.setType("text/plain");                    
                    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, ShortDesc+" from "+BusinessName);
                    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, ShortDesc+" "+ShareURL);
                    sharingIntent.putExtra(Intent.EXTRA_TITLE, ShortDesc+" "+ShareURL);
                    startActivityForResult(Intent.createChooser(sharingIntent, "Share via"),1000);
/**
     * Get the result when we share any data to another activity 
     * */
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        switch(requestCode) {
        case 1000:
            if(resultCode == RESULT_OK)
                Toast.makeText(getApplicationContext(), "Activity 1 returned OK", Toast.LENGTH_LONG).show();
            else
                Toast.makeText(getApplicationContext(), "Activity 1 returned NOT OK", Toast.LENGTH_LONG).show();
            break;
        case 1002:
            if(resultCode == RESULT_OK)
                Toast.makeText(getApplicationContext(), "Activity 2 returned OK", Toast.LENGTH_LONG).show();
            break;
        }// end switch



    }// end onActivityResult

1
ShareDialog shareDialog = new ShareDialog(this);
if(ShareDialog.canShow(ShareLinkContent.class)) {

    ShareLinkContent linkContent = new ShareLinkContent.Builder().setContentTitle(strTitle).setContentDescription(strDescription)
                            .setContentUrl(Uri.parse(strNewsHtmlUrl))
                            .build();
    shareDialog.show(linkContent);

}

0

মনে হচ্ছে এটি ফেসবুক অ্যাপ্লিকেশনটিতে একটি বাগ যা এপ্রিল ২০১১-এ প্রকাশিত হয়েছিল এবং এখনও অ্যান্ড্রয়েড ফেসবুক বিকাশকারীদের দ্বারা ঠিক করা হয়নি।

এই মুহুর্তের একমাত্র কাজ হ'ল তাদের এসডিকে ব্যবহার করা।


4
আমি মনে করি তারা চাইছে আপনি বন্ধুদের সাথে ভাগ করে নেওয়ার বিষয়বস্তু ভাগ করে নেওয়ার জন্য ওয়েব অ্যাপটি ব্যবহার করুন, যাতে আপনি ডি বিজ্ঞাপনগুলি দেখতে পারেন ... আমি একই সমস্যা এবং আমি ফেসবুক এপিআইয়ের মাধ্যমে ফেসবুক শেয়ারিং বাস্তবায়ন করব implement
ইগোর

0

আপনি যদি বার্তাটির ভিক্ষাবৃত্তিতে পাঠ্য # প্রদর্শন করতে চান তবে আপনি এটি হ্যাশট্যাগ হিসাবে ভাগ করবেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.