如何将特定登录的公共 Facebook 页面数据(应用程序)获取到我的 android 应用程序中?

Posted

技术标签:

【中文标题】如何将特定登录的公共 Facebook 页面数据(应用程序)获取到我的 android 应用程序中?【英文标题】:how to get public Facebook page data (app) of particular login into my android application? 【发布时间】:2014-04-16 10:06:59 【问题描述】:

我正在为 facebook 公共页面帖子工作。我的客户将使用 facebook(在我的应用程序内)登录,将他们的公共页面链接到我的应用程序。使用此登录是否可以让客户在 facebook 中创建他们的公共页面列表?

到目前为止,我可以获取用户详细信息,但不能获取页面和事件。

【问题讨论】:

【参考方案1】:

这是我对我自己的问题的回答,经过长时间的研究,它在公共页面上运行良好,作为活动结果的响应。

public class AdminFbLogin extends Activity 
private ProgressDialog pDialog;
private String userName ="", accessToken = "";
private JSONArray fbPages = null;
@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    facebookLogout();
    pDialog = new ProgressDialog(this);
    pDialog.setMessage("loading");
    pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    pDialog.setCanceledOnTouchOutside(false);
    try
    Session.openActiveSession(AdminFbLogin.this, true, new Session.StatusCallback() 

        // callback when session changes state
        @SuppressWarnings("deprecation")
        @Override
        public void call(Session session, SessionState state, Exception exception) 
            if (session.isOpened()) 

                // make request to the /me API
                Request.executeMeRequestAsync(session, new Request.GraphUserCallback() 

                    // callback after Graph API response with user
                    // object
                    @Override
                    public void onCompleted(GraphUser user, Response response) 
                        if (user != null) 
                            userName = user.getName();
                            if(fbPages != null ) 
                                returnAccessToken();
                            
                        
                    
                );
            

        
    );
     catch(Exception e)
        Toast.makeText(AdminFbLogin.this, "Please check your internet connection. ", Toast.LENGTH_LONG).show();
        pDialog.dismiss();
        Log.e("AdminFBLogin Error",e.getLocalizedMessage(),e);

    



@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    accessToken =  Session.getActiveSession().getAccessToken();

    final Session session = Session.getActiveSession();
    if (session.isOpened()) 
        new Request(session, "/me/accounts", null, HttpMethod.GET, new Request.Callback() 
            public void onCompleted(Response response) 
                try
                    GraphObject go = response.getGraphObject();
                    fbPages = (JSONArray) go.getProperty("data");
                    Log.d("User Response :", response.toString());
                    if(!userName.equals("")) 
                        returnAccessToken();
                    
                 catch(Exception e)
                    Log.e("JSOn Exception", e.getLocalizedMessage(),e);
                
            
        
    ).executeAsync();
    

private void returnAccessToken()
    Intent data = new Intent();
    data.putExtra("accessToken", accessToken);
    data.putExtra("fbPages", fbPages.toString());
    data.putExtra("userName", userName);
    setResult(RESULT_OK, data);
    facebookLogout();
    finish();


【讨论】:

【参考方案2】:

您可能应该看看 SDK 和教程: https://developers.facebook.com/docs/android/sample-apps

【讨论】:

以上是关于如何将特定登录的公共 Facebook 页面数据(应用程序)获取到我的 android 应用程序中?的主要内容,如果未能解决你的问题,请参考以下文章

无需用户登录即可获取特定页面的公共帖子

facebook API:任何公共方式来获取全局页面层次结构中特定页面的关注者数量?

如何获取 Facebook 公共页面内容访问权限只是为了提取数据?

网站上的 Facebook 公共聊天

如何在我的 SPA 的特定页面上隐藏 Facebook 客户聊天插件?

FB:获取公共页面阅读的访问令牌