Я использую график api из youtube, и я столкнулся с некоторыми проблемами.сообщение на facebook стена всегда показывает страницу входа .. проблема android
Я могу отправить сообщение на стену, он отлично работает. Проблема в том, что каждый раз он показывает страницу входа, и пользователь должен нажать кнопку «ОК», чтобы отправить ее. Я бы хотел отправить его, не показывая эту страницу, это должно быть показано только в первый раз. Я храню токен, используя общие настройки , но если я не вызываю метод facebook.autorize, который показывает страницу входа в систему, прежде чем пытаться отправить видео, он не работает.
Я делаю это неправильно? спасибо за любую помощь.
Мой код:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.facebook_lay);
init();
acessToken = loadAccessToken();
Log.i("teste","Acesstoken depois do load : " + acessToken);
if(acessToken == null || acessToken.equals("")){
login();
}else{
Log.i("teste","Session valid com token salva ? " + mFacebook.isSessionValid());
sendVideo();
}
}
private void init(){
mFacebook = new Facebook(APP_ID);
videoUrl = getIntent().getExtras().getString("videoUrl");
preferences = this.getSharedPreferences(APPLICATION_PREFERENCES,
Context.MODE_PRIVATE);
}
private void login(){
mFacebook.authorize(this, new String[] {"publish_stream","offline_access"},new AuthorizeListener());
}
public void postOnWall(String msg) {
Log.i("teste", "Testing graph API wall post");
try {
Bundle parameters = new Bundle();
parameters.putString("message", AUTO_MSG);
parameters.putString("link", msg);
mFacebook.request("me/feed", parameters,
"POST");
} catch(Exception e) {
e.printStackTrace();
}
}
private void storeToken(String token){
Log.i("teste","storeToken: " + token);
Editor editor = preferences.edit();
editor.putString(ACESS_TOKEN, token);
editor.commit();
}
private String loadAccessToken() {
String token = preferences.getString(ACESS_TOKEN, null);
if (token != null && !token.equals("") ) {
return token;
} else {
return null;
}
}
private void sendVideo(){
dialog = ProgressDialog.show(FacebookView.this, "Sending","Enviando video ...");
new Thread(){
public void run() {
postOnWall(videoUrl);
dialog.dismiss();
finish();
};
}.start();
}
class AuthorizeListener implements DialogListener{
@Override
public void onCancel() {
Log.i("teste","Logou candelado!");
finish();
}
@Override
public void onComplete(Bundle values) {
Log.i("teste","Logou com sucesso!");
Log.i("teste", "AcessToken : " + mFacebook.getAccessToken());
Log.i("teste", "AcessToken expires : " + mFacebook.getAccessExpires());
Log.i("teste", "Session valid : " + mFacebook.isSessionValid());
storeToken(mFacebook.getAccessToken());
sendVideo();
}
@Override
public void onError(DialogError e) {
Log.i("teste","Erro ao logar: " + e.getMessage());
finish();
}
@Override
public void onFacebookError(FacebookError e) {
Log.i("teste","FacebookError ao logar: " + e.getMessage());
Log.i("teste","FacebookError ao logar Causa: " + e.getCause());
e.printStackTrace();
finish();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
mFacebook.authorizeCallback(requestCode, resultCode, data);
}