Android - 取得Facebook Page Id ,並用page Id 開啟Facebook App 粉絲頁

摘要:Android - 取得Facebook Page Id ,並用page Id 開啟Facebook App 粉絲頁

一般來講,我們常用的是Facebook Page Url 

但如果要用Android 開啟 Android Facebook ,使用intent,需要使用的是fb:/profile/<page_id>

我們只有 https://www.facebook.com/<user_name>

 

這時,就需要使用

https://graph.facebook.com//<user_name>

取得id

再用id

使用fb://profile/<id>,打開FB App 導入相對的粉絲頁。

 

所以,我就做了一個,可以取得facebook page id的程式。


  
    public static String getFacebookPageId(Context ctx,String url) {
        String graphicId = "";
        
        try {
            String identifier = url.substring(url.lastIndexOf("/"));
            String graphUrl = "https://graph.facebook.com/" + identifier;
            JSONObject urlJsonData = getJson(ctx, graphUrl);
            if(urlJsonData.has("id")) {
                graphicId = urlJsonData.getString("id");
            }
        }catch(Exception ex) {
            ex.printStackTrace();
        }     
        
        return graphicId;
    }
    
    /**
     *  get Json Data Object
     */
    public static JSONObject getJson(Context ctx, String url) {
        AQuery aQuery = new AQuery(ctx);

        AjaxCallback cb = new AjaxCallback();
        cb.url(url).type(JSONObject.class);

        aQuery.sync(cb);

        JSONObject json = cb.getResult();
        return json;
    }

得到id後再使用


    public static void openFbPage(Activity activity, String url)throws Exception {
        final String facebookAppPackageName = "com.facebook.katana";

        activity.getPackageManager().getPackageInfo(facebookAppPackageName, 0);
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        intent.setPackage(facebookAppPackageName);
        activity.startActivity(intent);
    }

使用,就可以開啟fb相對的粉絲頁內容

openFbPage(this,"fb://profile/<page_id>");