#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 туда.