有没有什么办法可以在没有登录的情况下使用Android获取某些用户或应用程序的公共源代码?

mhl*_*666 2 android facebook

在我的Android应用程序中,我想要一些Facebook个人资料的公共提要内容.

我不想强迫我登录.

FB最近的API更改后有可能吗?

编辑:

我本应该问另一个问题:我可以在不要求用户登录的情况下在Android上获得普通的Facebook Feed吗?

我在答案中看到有一些离线(永久?)access_tokens - 我可以将它嵌入我的应用程序中吗?怎么去呢?

mhl*_*666 10

有两种方法可以做到这一点:

1)使用App id和secret获取访问令牌(无用户交互),然后使用它来访问feed:

try {
        String APP_ID = "123123123123123123";
        String APP_SECRET = "0123456789abcdef";
        String OWNER_OF_FEED = "barackobama";

        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(
                "https://graph.facebook.com/oauth/access_token?client_id="+ 
                APP_ID + 
                "&client_secret="+APP_SECRET+"&grant_type=client_credentials");

        ResponseHandler<String> responseHandler = new BasicResponseHandler();

        String access_token = client.execute(get, responseHandler);
        // access_token contains sthing like "access_token=XXXXXXXXXX|YYYYYY" , 
        //need to replace pipe (this is ugly!)
        String uri = "https://graph.facebook.com/" + OWNER_OF_FEED + "/feed?"
                + access_token.replace("|", "%7C");

        get = new HttpGet(uri);
        String responseBody = client.execute(get, responseHandler);

        // responseBody contains JSON-encoded feed

        textview.setText(responseBody);

    } catch (Exception ex) {
        ex.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

2)使用RSS feed:

http://www.facebook.com/feeds/page.php?format=rss20&id=6815841748
Run Code Online (Sandbox Code Playgroud)

...如果你想知道:6815841748是奥巴马总统的Facebook ID,谷歌将告诉你如何获得它.