2013-02-11 2 views
1

Я реализовал 2 метода обмена. С facebook и с твиттером.socialauth андроид не работает, если triyng делится два раза в строке

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_menu); 
    adapter = new SocialAuthAdapter(new ResponseListener()); 
} 

public void twitter(View view) { 
    adapter.authorize(this, SocialAuthAdapter.Provider.TWITTER); 
} 

public void facebook(View view) { 
    adapter.authorize(this, SocialAuthAdapter.Provider.FACEBOOK); 
} 

private final class ResponseListener implements DialogListener { 
    public void onComplete(Bundle values) { 
     adapter.updateStatus("status"); 
     Log.e("a", "success"); 
    } 

    public void onError(SocialAuthError error) { 
     Log.e("a", "error"); 
    } 

    public void onCancel() { 
     Log.e("a", "cancel"); 
    } 
} 

Когда я нажимаю кнопку общего доступа в первый раз, я получаю «успех» в журнале и статусе. Но когда я нажимаю его второй раз, у меня есть «успех» и «ошибка» после него, а статус не публикуется.

И исключение

02-12 01:16:40.158: WARN/System.err(12526): org.brickred.socialauth.exception.SocialAuthException: org.brickred.socialauth.exception.SocialAuthException: Status not updated. Return Status code :400 
02-12 01:16:40.158: WARN/System.err(12526): at org.brickred.socialauth.provider.FacebookImpl.updateStatus(FacebookImpl.java:276) 
02-12 01:16:40.158: WARN/System.err(12526): at org.brickred.socialauth.android.SocialAuthAdapter$4.run(SocialAuthAdapter.java:414) 
02-12 01:16:40.158: WARN/System.err(12526): at java.lang.Thread.run(Thread.java:856) 
02-12 01:16:40.158: WARN/System.err(12526): Caused by: org.brickred.socialauth.exception.SocialAuthException: Status not updated. Return Status code :400 
02-12 01:16:40.158: WARN/System.err(12526): at org.brickred.socialauth.provider.FacebookImpl.updateStatus(FacebookImpl.java:271) 
02-12 01:16:40.158: WARN/System.err(12526): ... 2 more 

ответ

1

Вы выкладываете же сообщение дважды. Facebook и твиттер воспринимают это как спам и не допускают этого. Опубликовать различное сообщение, и это будет успешным.

0

У меня такая же проблема, и я решил ее сам.

Просто нужно найти и комментарии/удалить сильфона код на TwitterImpl.java -> функция UpdateStatus (строка 279)

if (serviceResponse.getStatus() != 200) { 
    throw new SocialAuthException("Failed to update status on " + url + ". Status :" + serviceResponse.getStatus()); 
} 

Ref #: https://github.com/3pillarlabs/socialauth-android/issues/24