2014-12-04 128 views
1

我有一個Facebook登錄按鈕和一個分享按鈕來更新我的狀態,我可以正確登錄,但當我嘗試在我的牆上分享一些文本作爲facebook狀態我的應用程序崩潰與nullpointerexception這裏是我的狀態更新代碼:如何發佈Facebook的狀態直接在牆上使用Facebook的SDK在Android?

分享按鈕點擊收聽:

Session session = Session.getActiveSession(); 

     Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
       this, Arrays.asList("publish_actions")); 
     session.requestNewPublishPermissions(newPermissionsRequest); 

和我SessionState的變化方法是這樣的:

private void onSessionStateChange(Session session, SessionState state, 
      Exception exception) { 
     if (state.isOpened()) { 
      Log.i(TAG, "Logged in..."); 


      bShare.setEnabled(true); 

      if (state.equals(SessionState.OPENED_TOKEN_UPDATED) 
        && shouldAskPermission) { 
       shouldAskPermission = false; 
       Log.i(TAG, "opened token updated"); 


       Request.Callback UploadCallback = new Request.Callback() { 

        @Override 
        public void onCompleted(Response response) { 
         if (response.getError() != null) { 

          Toast.makeText(getActivity(), "Error Occured", 
            Toast.LENGTH_LONG).show(); 

         } 

         Object graphResponse = response.getGraphObject() 
           .getProperty("id"); 
         if (graphResponse == null 
           || !(graphResponse instanceof String) 
           || TextUtils.isEmpty((String) graphResponse)) { 

          Toast.makeText(getActivity(), 
            "Failed to post Status", Toast.LENGTH_LONG) 
            .show(); 
         } else { 

          Toast.makeText(getActivity(), "Status Updated", 
            Toast.LENGTH_LONG).show(); 
         } 

        } 
       }; 

       Request request = Request 
         .newStatusUpdateRequest(
           session, 
           StatusDetails.et.getText().toString() 
             .contentEquals("") ? "status from status plus" 
             : StatusDetails.et.getText().toString(), 
           UploadCallback); 

       request.executeAsync(); 

      } 

     } else if (state.isClosed()) { 
      Log.i(TAG, "Logged out..."); 
      // bShare.setVisibility(View.INVISIBLE); 
      bShare.setEnabled(false); 

     } 

    } 

但我的狀態得到更新,當我嘗試使用我的開發人員的Facebook p設定檔,如果我嘗試使用後的一些其他Facebook的個人主頁它給了我在該行空指針異常:

Object graphResponse = response.getGraphObject() 
           .getProperty("id"); 

我已經發表在開發者控制檯應用程序公開,但我不明白現在做什麼?任何人都可以幫忙嗎?

回答

1

之前,你可以使用publish_actions爲其他配置文件,則需要經過一個審查過程:https://developers.facebook.com/docs/apps/review/login

否則,它只會爲用戶在App一個角色(管理員,開發人員,測試人員)工作。

+0

好的我明白了,但是我在6個月前用相同的程序創建了一個應用程序,並且工作到現在非常好。爲什麼沒有這個應用程序需要審查? – Reyjohn 2014-12-04 20:48:26

+0

,因爲它仍然是一個v1.0應用程序。它將需要在2015年4月以後進行審覈:https://developers.facebook.com/docs/apps/changelog – luschn 2014-12-04 20:53:25

相關問題