Facebook中有一个名为Poll(contun poll)的应用程序,您可以在其中提供问题和一些选项。创建民意调查后,其他人可以开始投票。我可以在我的Android应用中创建民意调查并将其发布在Facebook上吗?即,用户将给他的Facebook登录凭据,而TEH应用程序将代表他创建民意调查。是否有这样的API?
是的,这是可能的。相关文档在这里:https://developers.facebook.com/docs/reference/api/question/
要在Android应用程序上执行此操作,您需要将我们的Facebook SDK添加到Android中。这样做后,要创建一个问题,您只需要执行以下
- 通过Facebook对用户进行身份验证以获取有效的访问令牌
- 请求
publish_stream
和user_questions
权限
然后,您只需要以下代码来创建问题并将其发布到Facebook:
Bundle params = new Bundle();
params.putString("question", "Cats or dogs?");
JSONObject questions = new JSONObject();
questions.put("Cat");
questions.put("Dog");
params.putString("options", questions.toString())
mAsyncRunner.request("me/questions", params, "POST", new RequestListener() {
@Override
public void onComplete(Bundle values) {
// success
Log.d("fb", values.toString());
}
@Override
public void onFacebookError(FacebookError e, final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
@Override
public void onFileNotFoundException(FileNotFoundException e, final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
@Override
public void onIOException(IOException e, final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}
@Override
public void onMalformedURLException(MalformedURLException e, final Object state) {
Log.e("Facebook", e.getMessage());
e.printStackTrace();
}