2013-03-05 36 views
0

我設法獲取請求令牌,但無法獲得訪問令牌。我的方法是使訪問令牌正確。有什麼建議麼 ?這是獲取訪問令牌的正確方法

//Step : 1 (Returns Request Token) 
string consumer_key = "dj0yJmk9bl..........lRReU9UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWIy"; 
string username = "some_user"; 
string pass = "some_pass"; 
string url = "https://login.yahoo.com/WSLogin/V1/get_auth_token?&login="+username+"&passwd="+pass+"&oauth_consumer_key="+consumer_key; 

HttpWebRequest request_a = (HttpWebRequest)WebRequest.Create(url); 
Stream objStream; 
objStream = request_a.GetResponse().GetResponseStream(); 
StreamReader objReader = new StreamReader(objStream); 
string resp = objReader.ReadLine(); //Since first line has the response - "Returns RequestToken=jUO3Qolu3AYGU1KtB9vUbxlnzfIiFRLP.." 
string requesttoken = resp.Replace("RequestToken=", ""); 

//Step : 2 (Returns OAuth access token) 
string auth_ = "&Authorization=OAuth"; 
string realm = "&realm=yahooapis.com"; 
string oauth_consumer_key = "&oauth_consumer_key=dj0yJmk9....bzlNVEV4TlRReU9UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWIy"; //This is Consumer Key 
string oauth_nonce = "&oauth_nonce=24829.2331"; 
string oauth_signature_method = "&oauth_signature_method=PLAINTEXT"; 
string tstamp = "&oauth_timestamp=1219450170"; 
string oauth_token = "&oauth_token="+ requesttoken; // 
string oauth_version = "&oauth_version=1.0"; 
string oauth_signat = "&oauth_signature=cbbe4eacb0c171ee9a78c070d2095a86dcc2b6ba"; // This is the Consumer Secret 
string new_url = "https://api.login.yahoo.com/oauth/v2/get_token?"; 
string command = new_url + auth_ + realm + oauth_consumer_key + oauth_nonce + oauth_signature_method + tstamp + oauth_token + oauth_version + oauth_signat; 

HttpWebRequest request_b = (HttpWebRequest)WebRequest.Create(command); 
Stream objStream_b; 
objStream_b = request_a.GetResponse().GetResponseStream(); 
StreamReader objReader_b = new StreamReader(objStream); 

我試圖在web瀏覽器測試命令變量,我得到以下

對不起,禁止訪問:您沒有權限訪問此服務器上的這個URL。

請檢查URL是否正確拼寫和大小寫。如果您在Yahoo!上找到目的地時遇到問題,請嘗試訪問Yahoo!主頁或查看雅虎在線服務列表。此外,如果您嘗試在下面搜索,則可能會找到您要查找的內容。

+0

你錯過了'using'報表和'嘗試-catch'塊。 – Romoku 2013-03-05 18:30:32

回答

0

有一個在oauth_signat之初沒有& ...我不知道雅虎的API,但是這應該是string auth_ = "&Authorization: OAuth";string auth_ = "&Authorization=OAuth";

+0

我剛剛添加了&但我仍然收到該錯誤。還改變了:to = – Rajeshwar 2013-03-05 18:35:27