Yahoo'yu uygulamamla bütünleştirmeye çalışıyorum.400 Yahoo Authentication'da Kötü İstek
Ben kullanıcıların Yahoo hesaplarını kullanarak giriş istiyorum ama bir simgesi için talep her zaman, ben aşağıdaki hataları alırsınız:
import oauth.signpost.OAuth;
import oauth.signpost.OAuthConsumer;
import oauth.signpost.OAuthProvider;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
import oauth.signpost.signature.HmacSha1MessageSigner;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
public class Request_Token_Activity extends Activity {
private OAuthConsumer consumer;
private OAuthProvider provider;
private SharedPreferences prefs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
consumer = new CommonsHttpOAuthConsumer("my consumer key", "my consumer secret");
consumer.setMessageSigner(new HmacSha1MessageSigner());
provider = new CommonsHttpOAuthProvider(
"http://api.login.yahoo.com/oauth/v2/get_request_token",
"http://api.login.yahoo.com/oauth/v2/get_token",
"http://api.login.yahoo.com/oauth/v2/request_auth");
} catch (Exception e) {
Log.e("", "onCreate Exception: " + e.toString());
}
getRequestToken();
}
private void getRequestToken() {
try {
String url = provider.retrieveRequestToken(consumer, "yahooapi://callback");
Log.i("", "Yahoo URL: " + url);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND);
this.startActivity(intent);
} catch (Exception e) {
Log.i("", "getRequestToken() Exception: " + e.toString());
}
}
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
final Uri uri = intent.getData();
if (uri != null && uri.getScheme().equals("yahooapi")) {
getAccessToken(uri);
}
}
private void getAccessToken(Uri uri) {
final String oauth_verifier = uri.getQueryParameter(OAuth.OAUTH_VERIFIER);
try {
provider.retrieveAccessToken(consumer, oauth_verifier);
final Editor edit = prefs.edit();
edit.putString("YAHOO_OAUTH_TOKEN", consumer.getToken());
edit.putString("YAHOO_OAUTH_TOKEN_SECRET", consumer.getTokenSecret());
edit.commit();
String token = prefs.getString("YAHOO_OAUTH_TOKEN", "");
String secret = prefs.getString("YAHOO_OAUTH_TOKEN_SECRET", "");
consumer.setTokenWithSecret(token, secret);
Log.i("", "Yahoo OAuth Token: " + token);
Log.i("", "Yahoo OAuth Token Secret: " + token);
} catch (Exception e) {
Log.i("", "getAccessToken Exception: " + e.toString());
}
}
}
: Burada
getRequestToken() Exception: oauth.signpost.exception.OAuthCommunicationException:
Communication with the service provider failed: Service provider responded in error: 400 (Bad Request)
benim kodu (Request_Token_Activity.java) 'dir
Ve bu benim AndroidManifest.xml anlık bir:
<activity android:name="Request_Token_Activity" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="yahooapi" android:host="callback" />
</intent-filter>
</activity>
Ben-kurdunuz benim Yahoo Project
, bir Web Application
olarak ve Read and Write access
'u Social
ve Contacts
'a koymaktadır. Neyi yanlış yapıyorum?
Burada bunun geçerli olup olmadığını bilmiyorum, ama Yahoo! bazen sunucularına bağlanmak için wifi üzerinde olmanızı gerektirir. Yine, bunun burada geçerli olup olmadığından emin değilim ya da Yahoo! – Eliezer