Как реализовать авторизацию Facebook, чтобы разрешить публикацию в Facebook через Android?

#android #facebook

#Android #Facebook

Вопрос:

У меня небольшая проблема с реализацией публикации в Facebook на Android. Я пытаюсь реализовать это таким образом, чтобы при нажатии кнопки он автоматически размещался на стене пользователя. Во-первых, я не знаю, где сохранить информацию для входа пользователей или API facebook уже справится с этим? Самое главное, я попробовал несколько примеров кода, и у меня возникла проблема с авторизацией FacebookClient.

 private Button.OnClickListener myButtonOnClickListener = new Button.OnClickListener (){

    @Override
    // on click load the asynctask to run.

    public void onClick(View arg0) {
        facebookClient = new Facebook(APP_ID);
        facebookAsync = new AsyncFacebookRunner(facebookClient);

        if (facebookClient.isSessionValid()) {
            uploadVideoFile();
        }
        else {
            facebookClient.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() {

                @Override
                public void onFacebookError(FacebookError e) {
                    (RESULT_CANCELED);
                }

                @Override
                public void onError(DialogError e) {
                 (RESULT_CANCELED);
                }

                @Override
                public void onComplete(Bundle values) {
                    uploadVideoFile();
                }

                @Override
                public void onCancel() {
                (RESULT_CANCELED);
                }
            });
        }

    };
  

На

 facebookClient.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() 
  

это говорит мне, что
The method authorize(Activity, String[], Facebook.DialogListener) in the type Facebook is not applicable for the arguments (new View.OnClickListener(){}, String[], new Facebook.DialogListener(){}).

Я застрял и запутался в этом, пожалуйста, любой помощи будет достаточно.

Ответ №1:

это потому, что ваш this , который передается методу authorize(), является экземпляром действия. попробуйте заменить его именем вашего OnClickListener, которое должно быть myButtonOnClickListener

Комментарии:

1. Все наоборот. Он должен поместить ActivityName.this туда.