发布/创建从Android应用程序到Facebook的投票

时间:2012-11-03 11:42:16

标签: android facebook facebook-android-sdk

在facebook中有一个名为民意调查(民意调查)的申请,您可以在其中提供问题和一些选项。创建投票后,其他人可以开始投票。我可以在我的Android应用程序中创建民意调查并在Facebook上发布吗?即用户将提供他的Facebook登录凭据,而应用程序将代表他创建投票。有没有这样的API?

1 个答案:

答案 0 :(得分:2)

是的,有可能。相关文档位于:https://developers.facebook.com/docs/reference/api/question/

要在您的Android应用上执行此操作,您需要将我们的Facebook SDK for Android添加到您的应用中。完成后,要创建一个问题,您只需要执行以下操作

  1. 通过Facebook验证用户以获取有效的访问令牌
  2. 请求publish_streamuser_questions权限
  3. 然后您只需要以下代码来创建问题并将其发布到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();
        }