অ্যান্ড্রয়েড অ্যাপ থেকে ফেসবুক পৃষ্ঠা খুলবেন?


157

আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে, আমি অফিসিয়াল ফেসবুক অ্যাপ্লিকেশনটিতে একটি ফেসবুক প্রোফাইলের একটি লিঙ্ক খুলতে চাই (অবশ্যই অ্যাপটি ইনস্টল করা থাকলে অবশ্যই)। আইফোনের জন্য, fb://ইউআরএল স্কিম রয়েছে, তবে আমার অ্যান্ড্রয়েড ডিভাইসে একই জিনিসটি চেষ্টা করে একটি ছোঁড়া ActivityNotFoundException

কোড থেকে অফিসিয়াল ফেসবুক অ্যাপে কোনও ফেসবুক প্রোফাইল খোলার সুযোগ আছে কি?


2
ফেসবুক ডে ফোরামে উত্তর নেই এমন একটি থ্রেড রয়েছে: ফোরাম.ডিভেলফারস.ফেসবুক.নেট / ভিউটোপিক.এফপি?pid=255227 (এটি এখানে যুক্ত করা হয়েছে কারণ এটি দেখায় যে কোনও সুস্পষ্ট উত্তর নেই, এবং সম্ভবত এটি পাবে) কোনও দিন সেখানে উত্তর দেওয়া হয়েছে ...)
জেমস মুর

আপনার কাছ থেকে আমার উত্তর দেখতে পারেন এখানে
মোহাম্মদ সোমমাকিয়া

উত্তর:


152

ফেসবুক সংস্করণে 11.0.0.11.23 (3002850) fb://profile/এবং fb://page/আর কাজ করে না। আমি ফেসবুক অ্যাপ্লিকেশনটি ছিন্ন করে দেখেছি যে আপনি ব্যবহার করতে পারেন fb://facewebmodal/f?href=[YOUR_FACEBOOK_PAGE]। উত্পাদনে আমি যে পদ্ধতিটি ব্যবহার করছি তা এখানে:

/**
 * <p>Intent to open the official Facebook app. If the Facebook app is not installed then the
 * default web browser will be used.</p>
 *
 * <p>Example usage:</p>
 *
 * {@code newFacebookIntent(ctx.getPackageManager(), "https://www.facebook.com/JRummyApps");}
 *
 * @param pm
 *     The {@link PackageManager}. You can find this class through {@link
 *     Context#getPackageManager()}.
 * @param url
 *     The full URL to the Facebook page or profile.
 * @return An intent that will open the Facebook page/profile.
 */
public static Intent newFacebookIntent(PackageManager pm, String url) {
  Uri uri = Uri.parse(url);
  try {
    ApplicationInfo applicationInfo = pm.getApplicationInfo("com.facebook.katana", 0);
    if (applicationInfo.enabled) {
      // http://stackoverflow.com/a/24547437/1048340
      uri = Uri.parse("fb://facewebmodal/f?href=" + url);
    }
  } catch (PackageManager.NameNotFoundException ignored) {
  }
  return new Intent(Intent.ACTION_VIEW, uri);
}

4
@ ডিজেহ্যাক্টরসন জন্মের জন্য আপনার আর এইডস ব্যবহার করা উচিত নয়। কেবলমাত্র সাধারণ লিঙ্কটি ব্যবহার করুন।
জারেড রুম্মার

2
@ ডিজেহ্যাক্টরজর্ন সবেমাত্র চেক করেছেন, এখানে কাজ করছেন। ফেসবুক সংস্করণে 13.0.0.13.14
জারেড রুম্মার

1
@ আবদুলওয়াসা এটি কয়েক মিলিয়ন ডাউনলোড সহ অ্যাপ্লিকেশনগুলিতে কাজ করেছে। যদি আপনার আরও ভাল সমাধান থাকে তবে দয়া করে কোনও কার্যনির্বাহী সমাধানকে কম দামের পরিবর্তে পোস্ট করুন।
জ্যারেড রুম্মলার

4
কেউ কি নিশ্চিত করতে পারেন যে এটি এখনও কাজ করে? (জুন 2019 পর্যন্ত)। আমি এখনও ActivityNotFoundException
পেয়েছি

5
এটি ফেসবুক পৃষ্ঠাটি খোলে তবে নিয়মিত এফবি পৃষ্ঠাগুলির বিপরীতে আমরা লাইক বোতাম, প্রোফাইল এবং কভার ফটো ইত্যাদি দেখতে পাই না এটি সরাসরি যোগাযোগের তথ্যটি খোলায় এবং পৃষ্ঠা থেকে সমস্ত পোস্ট প্রদর্শন করে।
নীরজ দ্বিবেদী

235

এটি সর্বশেষতম সংস্করণে কাজ করে:

  1. Https://ographic.facebook.com/ < user_name_here > এ যান ( উদাহরণস্বরূপ https: // راف .facebook.com/fsintents)
  2. আপনার আইডি অনুলিপি করুন
  3. এই পদ্ধতিটি ব্যবহার করুন:

    public static Intent getOpenFacebookIntent(Context context) {
    
       try {
        context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
        return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>"));
       } catch (Exception e) {
        return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<user_name_here>"));
       }
    }

এটি ব্যবহারকারী ইনস্টল করা থাকলে এটি ফেসবুক অ্যাপ খুলবে। অন্যথায় এটি ব্রাউজারে ফেসবুক খুলবে।

সম্পাদনা করুন: সংস্করণ 11.0.0.11.23 (3002850) থেকে ফেসবুক অ্যাপ আর এইভাবে সমর্থন করে না, অন্য উপায় আছে, জ্যারেড রুম্মারের কাছ থেকে নীচের প্রতিক্রিয়াটি দেখুন।


1
এর জন্য ধন্যবাদ, আমাকে অনেক সাহায্য করেছে! এখন যদি টুইটারের জন্য এটি করার কোনও উপায় ছিল
ইভান আর

3
আইওএসে উপলব্ধ ইউআরএল স্কিমগুলির তালিকার জন্য wiki.akosma.com/IPhone_URL_Schemes দেখুন - তাদের মধ্যে কিছু অ্যান্ড্রয়েডেও কাজ করা উচিত
ফ্রান্সেসকআর

7
& এই সমস্যার উত্তর এখানে; প্রোফাইলের পরিবর্তে "পৃষ্ঠা" ব্যবহার করুন
stackoverflow.com/a/15872383/1433187

1
শুধু খেয়াল করা জরুরী যে FB: // প্রফাইল ফেসবুক অ্যাপ্লিকেশন v1.3.2 চালু / সমর্থিত নয় যা স্টক নেক্সাস ওয়ান 2.3.6 মধ্যে অন্তর্ভুক্ত করা হয়
মার্ক

3
ডিজেহ্যাক্টরবারন সঠিক, fb: // প্রোফাইল / <fpid> বা fb: // পৃষ্ঠা / <fpid> আর এফ বি ভি 11 শুরু করে কাজ করছে
সাম

38

এটা কি সহজ নয়? উদাহরণস্বরূপ অনক্লিকলিস্টারের মধ্যে?

try {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/426253597411506"));
    startActivity(intent);
} catch(Exception e) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/appetizerandroid")));
}

পুনশ্চ. আপনার আইডি (বৃহত সংখ্যক) http://graph.facebook.com/ [uuserName] থেকে পান


আমি সম্মত, এটি আরও ভাল কারণ এটি ফেসবুক অ্যাপ্লিকেশন প্যাকেজের নাম বা অভিপ্রায় ফিল্টারগুলি সম্পর্কে কোনও অনুমান করে না। তবে এটি একই কারণে আরও খারাপ কারণ অন্যান্য অ্যাপ্লিকেশনগুলিও মিলবে অভিযুক্ত ফিল্টারগুলি নির্দিষ্ট করে specify এটি আপনি যা চান তা নির্ভর করে। অন্য কোনও অ্যাপ না বলা হয়েছে তা নিশ্চিত করার জন্য আপনি ইন্টেন্ট.সেটপ্যাকেজনাম ("com.facebook.katana") করেন।
চিহ্নিত করুন

তবে এটি ব্রাউজারটি খোলে এবং সেখানে ফেসবুকের ডেটা দেখানো হয়, কীভাবে ফেসবুক অ্যাপ ব্যবহার করা সম্ভব (ফেসবুক অ্যাপ্লিকেশন কল করতে)?
মিখিল ঝেঝেন্তি

32

ফেসবুক পৃষ্ঠার জন্য:

try {
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/" + pageId));
} catch (Exception e) {
    intent =  new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/" + pageId));
}

ফেসবুক প্রোফাইলের জন্য:

try {
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/" + profileId));
} catch (Exception e) {
    intent =  new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/" + profileId));
}

... কারণ উত্তরের কোনওটিই পার্থক্য দেখায় না

উভয়ই নেক্সাস 4 এ ফেসবুক v.27.0.0.24.15 এবং অ্যান্ড্রয়েড 5.0.1 দিয়ে পরীক্ষা করেছেন


হাই, প্রোফাইল এবং পৃষ্ঠার মধ্যে পার্থক্য কীভাবে জানবেন?
alvarodoune

1
প্রোফাইলটি কোনও ব্যক্তিগত ব্যক্তির জন্য, যেখানে কোনও পৃষ্ঠা সংস্থাগুলি, স্থান, ব্র্যান্ডের জন্য। দেখুন: facebook.com/help/217671661585622 [শিরোনাম: পৃষ্ঠাগুলি ব্যক্তিগত প্রোফাইল থেকে কীভাবে আলাদা?]
মার্মেল

নোটগুলির জন্য: অভিপ্রায় = নতুন উদ্দীপনা (অভিপ্রায়.অ্যাকশন_ভিউ, উরি.পারস ("fb: // নোট /" + ফেসবুক নোটআইডি));
ভুডু 98

1
সর্বজনীন পৃষ্ঠা, ইভেন্ট, প্রোফাইলের জন্য আইডি সন্ধান করতে আপনি FindMyFbId
কার্লোস জেরগা

ফেসবুক অ্যাপে প্রোফাইল খুলছে না।
হামাদ নাসির

27

এটি 2016 সালে করার উপায় এখানে দুর্দান্ত কাজ করে এবং খুব সহজ।

ফেসবুকের মাধ্যমে ইমেলগুলি কীভাবে অ্যাপটি প্রেরণ করে তা অনুসন্ধান করার পরে আমি এটি আবিষ্কার করেছি।

// e.g. if your URL is https://www.facebook.com/EXAMPLE_PAGE, you should put EXAMPLE_PAGE at the end of this URL, after the ?
String YourPageURL = "https://www.facebook.com/n/?YOUR_PAGE_NAME";
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(YourPageURL));

startActivity(browserIntent);

1
এমনকি 2016 সালেও নিখুঁতভাবে কাজ করে। আপনি যখন বেলজিয়াম থেকে ফেসবুক ব্রাউজ করেন তখন কোনও সমস্যা সমাধান করে (যখন লগ ইন না করে কুকিজ অক্ষম থাকে)।
সন্দেহভাজন

3
যখন আমি এটি ব্যবহার করি, আমি যে ফেসবুক পৃষ্ঠার উল্লেখ করছি তার শিরোনামটি ফেসবুক অ্যাপ্লিকেশনটিতে অনুপস্থিত, যেমন পৃষ্ঠা প্রোফাইল চিত্র এবং পৃষ্ঠা / ক্রিয়াকলাপ / অন্তর্দৃষ্টি ট্যাবগুলি।
ড্যানিয়েল পারসন

আপনার পৃষ্ঠার নাম (যেমন বলা হয়েছে) তবে এটি ব্যবহার করে তবে আপনার সংখ্যার পৃষ্ঠা আইডি নেই not
এরিক বি।

5
ঠিক আছে তবে আমাকে কোনও পরিষ্কার পৃষ্ঠায় নিয়ে আসে না যেখানে ব্যবহারকারী সহজেই আমার পৃষ্ঠার মতো করে তুলতে পারেন .... তবুও এটি সন্ধান করছেন! কোন সমাধান?
Regis_AG

@ রেজিস_এজি এর জন্য যে কারও সমাধান করতে হবে?
আদ্রিয়ানভিন্টু

22

এটি করার জন্য এটি সহজতম কোড

public final void launchFacebook() {
        final String urlFb = "fb://page/"+yourpageid;
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(urlFb));

        // If a Facebook app is installed, use it. Otherwise, launch
        // a browser
        final PackageManager packageManager = getPackageManager();
        List<ResolveInfo> list =
            packageManager.queryIntentActivities(intent,
            PackageManager.MATCH_DEFAULT_ONLY);
        if (list.size() == 0) {
            final String urlBrowser = "https://www.facebook.com/"+pageid;
            intent.setData(Uri.parse(urlBrowser));
        }

        startActivity(intent);
    }

এটি কাজ করছে না। যখন আমি " facebook.com/pages/"+pageid " লিঙ্কটি সেট করছি
BSKANIA

ফেরত 'পৃষ্ঠাগুলি /' - পার্ট -> ব্যবহার "facebook.com/," + pageId
Murmel

এখনও আজকের মতো কাজ করছে! আপনাকে অনেক ধন্যবাদ আমি এই অংশটি "" facebook.com/pages/"+ পৃষ্ঠায় পরিবর্তন করেছি ; " এটির সাথে একটি "" ফেসবুক
নাইটব্রাহিম

@নাটব্রাহিম আমাদের জানান যে এটি এখনও কাজ করছে! আমি উত্তর সম্পাদনা করেছি। বিটিডব্লিউ, উত্তরটি 2013 সালে পোস্ট করা হয়েছিল :) শুভ এটি আপনাকে সহায়তা করেছে
এমবিএইচ

15

আরও পুনরায় ব্যবহারযোগ্য পদ্ধতি

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

(তথ্যের ক্ষেত্রে অন্যান্য জবাবগুলির মতোই just এটি কেবল সহজীকরণ এবং বাস্তবায়নটিকে পুনরায় ব্যবহারযোগ্য করে তুলতে এখানে পোস্ট করা)

"fb://page/FB অ্যাপ্লিকেশনটির নতুন সংস্করণগুলির সাথে কাজ করে না। আপনার আরও fb://facewebmodal/f?href=নতুন সংস্করণ ব্যবহার করা উচিত । ( এখানে অন্য উত্তরে উল্লিখিত মত )

এটি বর্তমানে আমার অ্যাপ্লিকেশনগুলির একটিতে লাইভ একটি পূর্ণাঙ্গ ওয়ার্কিং কোড:

public static String FACEBOOK_URL = "https://www.facebook.com/YourPageName";
public static String FACEBOOK_PAGE_ID = "YourPageName";

//method to get the right URL to use in the intent
public String getFacebookPageURL(Context context) {
        PackageManager packageManager = context.getPackageManager();
        try {
            int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;
            if (versionCode >= 3002850) { //newer versions of fb app
                return "fb://facewebmodal/f?href=" + FACEBOOK_URL;
            } else { //older versions of fb app
                return "fb://page/" + FACEBOOK_PAGE_ID;
            }
        } catch (PackageManager.NameNotFoundException e) {
            return FACEBOOK_URL; //normal web url
        }
    }

এই পদ্ধতিটি ইনস্টল করা থাকলে অ্যাপ্লিকেশনটির জন্য সঠিক url বা অ্যাপ্লিকেশন ইনস্টল না করা থাকলে ওয়েব url প্রদান করবে।

তারপরে নিম্নরূপ একটি উদ্দেশ্য শুরু করুন:

Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
String facebookUrl = getFacebookPageURL(this);
facebookIntent.setData(Uri.parse(facebookUrl));
startActivity(facebookIntent);

আপনার এটাই দরকার।



9

এটি পিয়ারের by87 দ্বারা এফআরড্রয়েড ফোরামের বিপরীতে ইঞ্জিনিয়ার করা হয়েছে , তবে এটি বর্ণনা করে এমন কোনও অফিসার আমি পাই না, সুতরাং যে কোনও মুহুর্তে কাজ বন্ধ করার জন্য এটি অনিবন্ধিত এবং দায়বদ্ধ হিসাবে গণ্য করতে হবে:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
intent.putExtra("extra_user_id", "123456789l");
this.startActivity(intent);

হ্যাঁ, সমাধানটি কাজ করা বন্ধ করে দিয়েছে। ত্রুটিটি হ'ল: "জাভা.লং.সিকিউরিটিএক্সসেপশন ?: অনুমতি অস্বীকার: উদ্দ্যেশ {flg = 0x10080000 cmp = com.facebook.katana / .ProfileTabHostActivity? (অতিরিক্ত রয়েছে) Process প্রসেসরেকর্ড থেকে?" ক্রিয়াকলাপ প্রোফাইলটহস্টঅ্যাক্টিভিটির কোনও অ্যান্ড্রয়েড নেই: অ্যান্ড্রয়েড ম্যানিফেস্টে রফতানি করা পতাকা, তাই ডিফল্ট অ্যান্ড্রয়েড দ্বারা: এই ক্রিয়াকলাপের জন্য রফতানি = "মিথ্যা"। ফলস্বরূপ প্রোফাইল ট্যাবহোস্টঅ্যাক্টিভিটি অন্যান্য অ্যাপ্লিকেশন দ্বারা চালু করা যায় না। একমাত্র আশা যে এফবি বিকাশকারীরা এফবি অ্যাপ্লিকেশনটির বৈশিষ্ট্য সংস্করণগুলিতে এই সমস্যাটি সমাধান করবে।
ডিভিপাবলিক

আমি মনে করি এই "দুর্ঘটনাজনক এপিআই" বন্ধ করার জন্য সমাধানটি হয়েছিল।
বৈদেন

7

এই কোড চেষ্টা করুন:

String facebookUrl = "https://www.facebook.com/<id_here>";
        try {
            int versionCode = getPackageManager().getPackageInfo("com.facebook.katana", 0).versionCode;
            if (versionCode >= 3002850) {
                Uri uri = Uri.parse("fb://facewebmodal/f?href=" + facebookUrl);
                   startActivity(new Intent(Intent.ACTION_VIEW, uri));
            } else {
                Uri uri = Uri.parse("fb://page/<id_here>");
                startActivity(new Intent(Intent.ACTION_VIEW, uri));
            }
        } catch (PackageManager.NameNotFoundException e) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookUrl)));
        }

7

এটি করার জন্য আমাদের "ফেসবুক পৃষ্ঠার আইডি" দরকার, আপনি এটি পেতে পারেন:

  • পৃষ্ঠা থেকে "সম্পর্কে" যান।
  • "আরও তথ্য" বিভাগে যান।

পরিচয়পত্র

নির্দিষ্ট প্রোফাইল পৃষ্ঠায় ফেসবুক অ্যাপ্লিকেশন খোলার জন্য,

তুমি এটি করতে পারো:

 String facebookId = "fb://page/<Facebook Page ID>";
  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookId)));

অথবা ফেসবুক অ্যাপটি ইনস্টল না হয়ে আপনি যাচাই করতে পারেন, তারপরে ফেসবুক ওয়েব পৃষ্ঠাটি খুলুন।

String facebookId = "fb://page/<Facebook Page ID>";
String urlPage = "http://www.facebook.com/mypage";

     try {
          startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookId )));
        } catch (Exception e) {
         Log.e(TAG, "Application not intalled.");
         //Open url web page.
         startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        }

আমি Page IDএটি সম্পর্কে ট্যাব থেকে দেখিনি । এটা কি প্রাইভেট?
RoCk RoCk

5

অনেক পরীক্ষার পরে আমি একটি কার্যকর সমাধান খুঁজে পেয়েছি:

private void openFacebookApp() {
    String facebookUrl = "www.facebook.com/XXXXXXXXXX";
    String facebookID = "XXXXXXXXX";

    try {
        int versionCode = getActivity().getApplicationContext().getPackageManager().getPackageInfo("com.facebook.katana", 0).versionCode;

        if(!facebookID.isEmpty()) {
            // open the Facebook app using facebookID (fb://profile/facebookID or fb://page/facebookID)
            Uri uri = Uri.parse("fb://page/" + facebookID);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        } else if (versionCode >= 3002850 && !facebookUrl.isEmpty()) {
            // open Facebook app using facebook url
            Uri uri = Uri.parse("fb://facewebmodal/f?href=" + facebookUrl);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        } else {
            // Facebook is not installed. Open the browser
            Uri uri = Uri.parse(facebookUrl);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        }
    } catch (PackageManager.NameNotFoundException e) {
        // Facebook is not installed. Open the browser
        Uri uri = Uri.parse(facebookUrl);
        startActivity(new Intent(Intent.ACTION_VIEW, uri));
    }
}

4

আমার উত্তরটি জওআমজিসিডি থেকে বহুল স্বীকৃত উত্তরের উপরে তৈরি হয়েছে। যদি ব্যবহারকারী ফেসবুক ইনস্টল করেন তবে অক্ষম করেছেন (উদাহরণস্বরূপ অ্যাপ কোয়ারানটাইন ব্যবহার করে), এই পদ্ধতিটি কাজ করবে না। টুইটার অ্যাপ্লিকেশনটির উদ্দেশ্যে নির্বাচন করা হবে তবে এটি অক্ষম থাকায় এটি প্রক্রিয়া করতে সক্ষম হবে না।

পরিবর্তে:

context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/620681997952698"));

আপনি কী করতে হবে তা সিদ্ধান্ত নিতে নিম্নলিখিতটি ব্যবহার করতে পারেন:

PackageInfo info = context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
if(info.applicationInfo.enabled)
    return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/620681997952698"));
else
    return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/620681997952698"));

4

আমি খুঁজে পেয়েছি সেরা উত্তর, এটি দুর্দান্ত কাজ।

কেবল ব্রাউজারে ফেসবুকে আপনার পৃষ্ঠায় যান, ডান ক্লিক করুন এবং "উত্স কোড দেখুন" এ ক্লিক করুন, তারপরে page_idবৈশিষ্ট্যটি সন্ধান করুন: page_idশেষ ব্যাক-স্ল্যাশের পরে আপনাকে এই লাইনে এখানে ব্যবহার করতে হবে :

fb://page/pageID

উদাহরণ স্বরূপ:

Intent facebookAppIntent;
try {
    facebookAppIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/1883727135173361"));
    startActivity(facebookAppIntent);
} catch (ActivityNotFoundException e) {
    facebookAppIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://facebook.com/CryOut-RadioTv-1883727135173361"));
    startActivity(facebookAppIntent);
}

এটি কেবল স্থির অ্যাপ্লিকেশনগুলির জন্যই অর্থবোধ করে।
ইরশু

4

2020 সালের মার্চ পর্যন্ত এটি পুরোপুরি কার্যকর হয়।

private void openFacebookPage(String pageId) {
    String pageUrl = "https://www.facebook.com/" + pageId;

    try {
        ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo("com.facebook.katana", 0);

        if (applicationInfo.enabled) {
            int versionCode = getPackageManager().getPackageInfo("com.facebook.katana", 0).versionCode;
            String url;

            if (versionCode >= 3002850) {
                url = "fb://facewebmodal/f?href=" + pageUrl;
            } else {
                url = "fb://page/" + pageId;
            }

            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        } else {
            throw new Exception("Facebook is disabled");
        }
    } catch (Exception e) {
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(pageUrl)));
    }
}

2
Intent intent = null;
    try {
        getPackageManager().getPackageInfo("com.facebook.katana", 0);
        String url = "https://www.facebook.com/"+idFacebook;
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href="+url));
    } catch (Exception e) {
        // no Facebook app, revert to browser
        String url = "https://facebook.com/"+idFacebook;
        intent = new Intent(Intent.ACTION_VIEW);
        intent .setData(Uri.parse(url));
    }
    this.startActivity(intent);

2

জুলাই 2018 পর্যন্ত এটি সমস্ত ডিভাইসে ফেসবুক অ্যাপের সাথে বা ছাড়াই পুরোপুরি কাজ করে।

private void goToFacebook() {
    try {
        String facebookUrl = getFacebookPageURL();
        Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
        facebookIntent.setData(Uri.parse(facebookUrl));
        startActivity(facebookIntent);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private String getFacebookPageURL() {
    String FACEBOOK_URL = "https://www.facebook.com/Yourpage-1548219792xxxxxx/";
    String facebookurl = null;

    try {
        PackageManager packageManager = getPackageManager();

        if (packageManager != null) {
            Intent activated = packageManager.getLaunchIntentForPackage("com.facebook.katana");

            if (activated != null) {
                int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;

                if (versionCode >= 3002850) {
                    facebookurl = "fb://page/1548219792xxxxxx";
                }
            } else {
                facebookurl = FACEBOOK_URL;
            }
        } else {
            facebookurl = FACEBOOK_URL;
        }
    } catch (Exception e) {
        facebookurl = FACEBOOK_URL;
    }
    return facebookurl;
}

এফবি লাইট অ্যাপটির একটি পৃথক প্যাকেজ নাম রয়েছে, আপনি যদি এইভাবে ব্যবহার করেন তবে আপনার com.facebook.liteও চেক করা উচিত - যদিও আমি এই চ্যানেলটি পরীক্ষা করে নিই যে লাইট এই
ইউআরএলগুলি

@ Androidguy আমার কাছে এফবি লাইট নেই। কোডটি এটি দিয়ে কাজ করে কিনা তা জানা ভাল হবে। আপনি যদি এটি কোনওভাবে পরীক্ষা করে দেখতে পারেন এবং নিজের অনুসন্ধানগুলি এখানে রাখতে পারেন, এটি অন্যদের যারা এখানে এখনও আসেন তাদের সহায়তা করবে। প্রশংসা করা হয়েছে, ধন্যবাদ
এমমি 0

@ ইমি -> আপনার পৃষ্ঠা -1548219792xxxxxx url এ পৃষ্ঠা আইডি বা পৃষ্ঠা url ur যেমন প্রাক্তন: facebook.com/PageName আমার পৃষ্ঠা url এবং আইডি 2345676 এর মতো কিছু So তাই কোডটিতে উল্লিখিত URL টি ফেসবুক / পেজ নাম বা অন্য কিছু হবে?
নীরজ দ্বিবেদী

@ নীরাজদ্বিবেদী আপনার উভয়ই প্রয়োজন: ইউআরএলটিতে আপনার পৃষ্ঠার নাম এবং পৃষ্ঠার আইডি। এরকম কিছু: 'স্ট্রিং এফএসিইউইউকি_উইউআরএল = " ফেসবুক / বিয়ানরোস্টার 1548219792112345/ " ;'
ইমি

@ ইমি আমি ঠিক একই কোডটি ব্যবহার করেছি FACEBOOK_URL এর পরিবর্তে " facebook.com/myPageName-myPageID " এ এবং আমি উপরে অনুসন্ধান বারের সাথে একটি ফাঁকা পৃষ্ঠা পাচ্ছি। আমি অ্যান্ড্রয়েড 9 এ সর্বশেষতম ফেসবুক অ্যাপ্লিকেশন ব্যবহার করছি (এফবি অ্যাপ্লিকেশন সংস্করণ - 237.0.0.44.120)
নীরজ দ্বিবেদী

1

আমি ফেসবুক অ্যাপে ফেসবুক পৃষ্ঠা খুলতে একটি পদ্ধতি তৈরি করেছি, যদি অ্যাপটি বিদ্যমান না থাকে তবে ক্রোমে খোলার

    String socailLink="https://www.facebook.com/kfc";
    Intent intent = new Intent(Intent.ACTION_VIEW);
    String facebookUrl = Utils.getFacebookUrl(getActivity(), socailLink);
    if (facebookUrl == null || facebookUrl.length() == 0) {
        Log.d("facebook Url", " is coming as " + facebookUrl);
        return;
    }
    intent.setData(Uri.parse(facebookUrl));
    startActivity(intent);

Utils.class এই পদ্ধতিটি যুক্ত করুন

public static String getFacebookUrl(FragmentActivity activity, String facebook_url) {
    if (activity == null || activity.isFinishing()) return null;

    PackageManager packageManager = activity.getPackageManager();
    try {
        int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;
        if (versionCode >= 3002850) { //newer versions of fb app
            Log.d("facebook api", "new");
            return "fb://facewebmodal/f?href=" + facebook_url;
        } else { //older versions of fb app
            Log.d("facebook api", "old");
            return "fb://page/" + splitUrl(activity, facebook_url);
        }
    } catch (PackageManager.NameNotFoundException e) {
        Log.d("facebook api", "exception");
        return facebook_url; //normal web url
    }
}

এবং এই

 /***
 * this method used to get the facebook profile name only , this method split domain into two part index 0 contains https://www.facebook.com and index 1 contains after / part
 * @param context contain context
 * @param url contains facebook url like https://www.facebook.com/kfc
 * @return if it successfully split then return "kfc"
 *
 * if exception in splitting then return "https://www.facebook.com/kfc"
 *
 */
 public static String splitUrl(Context context, String url) {
    if (context == null) return null;
    Log.d("Split string: ", url + " ");
    try {
        String splittedUrl[] = url.split(".com/");
        Log.d("Split string: ", splittedUrl[1] + " ");
        return splittedUrl.length == 2 ? splittedUrl[1] : url;
    } catch (Exception ex) {
        return url;
    }
}

3
সর্বশেষতম সংস্করণে, আমি হোম পৃষ্ঠায় নেভিগেট করার সময় এটি আমাকে প্রায় পৃষ্ঠায় নিয়ে যাচ্ছে। কোন টিপস ?
বালাজী কাটিকা

সমাধান কি খুঁজে পেয়েছেন ??
আমান ভার্মা

1

আপনার অ্যাপ্লিকেশন থেকে ফেসবুক পৃষ্ঠা চালু করতে , urlString = "fb: // পৃষ্ঠা / আপনার_fb_page_id" দিন

ফেসবুক মেসেঞ্জার চালু করতে urlString = "এফবি-মেসেঞ্জার: // ব্যবহারকারী / আপনার_এফবি_পেজ_আইডি"

এফবি পৃষ্ঠার আইডি সাধারণত সংখ্যাযুক্ত। এটি পেতে, আমার এফবি আইডি ইনপুটটি আপনার প্রোফাইল ইউআরএল অনুসন্ধান করুন, www.facebook.com/edgedevstudio এর মতো কিছু তারপর "সন্ধান নম্বরটি আইডি" ক্লিক করুন।

ভয়েলা, আপনার এখন আপনার এফবি সংখ্যার আইডি রয়েছে। উত্পন্ন সংখ্যাযুক্ত আইডির সাথে "আপনার_ফবি_পেজ_আইডি" প্রতিস্থাপন করুন

 val intent = Intent(Intent.ACTION_VIEW, Uri.parse(urlString))
 if (intent.resolveActivity(packageManager) != null) //check if app is available to handle the implicit intent
 startActivity(intent)

1

ধ্রুবকগুলি ঘোষণা করুন

  private String FACEBOOK_URL="https://www.facebook.com/approids";
    private String FACEBOOK_PAGE_ID="approids";

পদ্ধতি ঘোষণা করুন

public String getFacebookPageURL(Context context) {
        PackageManager packageManager = context.getPackageManager();
        try {
            int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;

            boolean activated =  packageManager.getApplicationInfo("com.facebook.katana", 0).enabled;
            if(activated){
                if ((versionCode >= 3002850)) {
                    Log.d("main","fb first url");
                    return "fb://facewebmodal/f?href=" + FACEBOOK_URL;
                } else {
                    return "fb://page/" + FACEBOOK_PAGE_ID;
                }
            }else{
                return FACEBOOK_URL;
            }
        } catch (PackageManager.NameNotFoundException e) {
            return FACEBOOK_URL;
        }
    }

কল ফাংশন

Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
                String facebookUrl = getFacebookPageURL(MainActivity.this);
                facebookIntent.setData(Uri.parse(facebookUrl));
                startActivity(facebookIntent);

0

অক্টোবর 2018 এ এর ​​উত্তর দেওয়া। পৃষ্ঠা কোডটি ব্যবহার করা কোডটি হ'ল using আমি এটি পরীক্ষা করেছি এবং এটি কার্যকরী।

public static void openUrl(Context ctx, String url){
    Uri uri = Uri.parse(url);
    if (url.contains(("facebook"))){
        try {
            ApplicationInfo applicationInfo = ctx.getPackageManager().getApplicationInfo("com.facebook.katana", 0);
            if (applicationInfo.enabled) {
                uri = Uri.parse("fb://page/<page_id>");
                openURI(ctx, uri);
                return;
            }
        } catch (PackageManager.NameNotFoundException ignored) {
            openURI(ctx, uri);
            return;
        }
    }

0

আমি এই ফর্মটিতে ওয়েবভিউতে ফ্র্যাগমেন্ট-ইন-ক্রিয়েট ব্যবহার করে প্রয়োগ করেছি:

 webView.setWebViewClient(new WebViewClient()
{
    public boolean shouldOverrideUrlLoading(WebView viewx, String urlx)
                {
     if(Uri.parse(urlx).getHost().endsWith("facebook.com")) {
                        {
                            goToFacebook();
                        }
                        return false;
                    }
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlx));
                    viewx.getContext().startActivity(intent);
                    return true;
                }

});

এবং ক্রেট ভিউ এর বাইরে:

 private void goToFacebook() {
        try {
            String facebookUrl = getFacebookPageURL();
            Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
            facebookIntent.setData(Uri.parse(facebookUrl));
            startActivity(facebookIntent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //facebook url load
    private String getFacebookPageURL() {
        String FACEBOOK_URL = "https://www.facebook.com/pg/XXpagenameXX/";
        String facebookurl = null;

        try {
            PackageManager packageManager = getActivity().getPackageManager();

            if (packageManager != null) {
                Intent activated = packageManager.getLaunchIntentForPackage("com.facebook.katana");

                if (activated != null) {
                    int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;

                    if (versionCode >= 3002850) {
                        facebookurl = "fb://page/XXXXXXpage_id";
                    }
                } else {
                    facebookurl = FACEBOOK_URL;
                }
            } else {
                facebookurl = FACEBOOK_URL;
            }
        } catch (Exception e) {
            facebookurl = FACEBOOK_URL;
        }
        return facebookurl;
    }

0

ফেসবুক এসডিকে ব্যবহার না করে বোতাম ক্লিক ইভেন্টে এফবি খুলুন

 Intent FBIntent = new Intent(Intent.ACTION_SEND);
    FBIntent.setType("text/plain");
    FBIntent.setPackage("com.facebook.katana");
    FBIntent.putExtra(Intent.EXTRA_TEXT, "The text you wanted to share");
    try {
        context.startActivity(FBIntent);
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(context, "Facebook have not been installed.", Toast.LENGTH_SHORT).show( );
    }

0
fun getOpenFacebookIntent(context: Context, url: String) {
    return try {
        context.packageManager.getPackageInfo("com.facebook.katana", 0)
        context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/$url/")))
    } catch (e: Exception) {
        context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
    }
}

0

আপনার আইডিটি পেতে আপনার চিত্রের প্রোফাইলে যান এবং ডান ক্লিক করুন এবং অনুলিপি লিঙ্কের ঠিকানা নিন।

        try {
                Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("fb://profile/id"));
                startActivity(intent);
            } catch(Exception e) {
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("facebook url")));
            }
        }
    });

-1
try {
       String[] parts = url.split("//www.facebook.com/profile.php?id=");
       getPackageManager().getPackageInfo("com.facebook.katana", 0);
       startActivity(new Intent (Intent.ACTION_VIEW, Uri.parse(String.format("fb://page/%s", parts[1].trim()))));
    } catch (Exception e) {
       startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
    }

-2

আপনি নীচে বোতাম ক্লিকের উপর ফেসবুক অ্যাপ খুলতে পারেন: -

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            startNewActivity("com.facebook.katana");
        }
    });

}

public void startNewActivity( String packageName)
{
    Intent intent = MainActivity.this.getPackageManager().getLaunchIntentForPackage(packageName);
    if (intent != null)
    {
        // we found the activity
        // now start the activity
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
    else
    {
        // bring user to the market
        // or let them choose an app?
        intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setData(Uri.parse("market://details?id="+packageName));
        startActivity(intent);
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.