如何将特定登录的公共 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 公共页面内容访问权限只是为了提取数据?