2010-05-30 4 views
7

Tôi đang cố gắng để có được xác thực Twitter làm việc trên trang ASP.NET của tôi. Khi bạn tạo ứng dụng trên trang web Twitter, bạn phải chỉ định URL gọi lại, vì mục đích của đối số, tôi đã đặt thành http://mydomain.comThông số oauth_callback Twitter bị bỏ qua!

Tôi đã đọc thông số oAuth 1.0a và ghi đè URL gọi lại này tùy chỉnh của riêng bạn, bạn phải gửi tham số oauth_callback trong pha request_token (mã hóa url của khóa học).

Vì vậy, URL yêu cầu của tôi trông như thế này:

http://twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2Fmydomain.com%2Ftwittercallback

Giả sử là, nếu mọi việc suôn sẻ để lên kế hoạch, trong dữ liệu trả lời của bạn, bạn có nghĩa vụ phải nhận một tham số mới của oauth_callback_confirmed = true ngoài của bạn thông số bí mật và mã thông báo.

Tuy nhiên, phản ứng của tôi đi qua như: oauth_token = MYTOKEN & oauth_token_secret = MYTOKENSECRET

Tôi biết tôi đã không cho cậu số tiền lớn nhất để đi về, nhưng tôi đang ở wits cuối của tôi như để tại sao tôi không nhận được tham số oauth_callback_confirmed. Nếu không có điều này, ứng dụng của tôi giữ mặc định trở lại URL gọi lại được mã hóa cứng trên trang web Twitter. Xin vui lòng nếu có ai có thể giúp tôi, tôi sẽ mãi mãi biết ơn!

Cảm ơn, A.

+0

Tôi đã thêm một thẻ twitterapi. – amelvin

Trả lời

0

Tôi đã sử dụng this guide để thiết lập máy tính của tôi để được sử dụng như vị trí callback. Về cơ bản, bạn thiết lập tệp máy chủ của mình theo một cách nhất định, xóa bộ nhớ cache của bạn và thêm một vài giá trị đăng ký Firefox. Cuối cùng khi bạn đang gỡ lỗi cuộc gọi oauth, chuyển hướng quay lại máy tính cục bộ của bạn.

Như tôi đã nói nó làm việc cho tôi.

8

Tôi đã đọc spec OAuth 1.0a, và để ghi đè URL callback này với một tùy chỉnh riêng của bạn, bạn phải gửi tham số oauth_callback trong giai đoạn request_token (url-mã hóa của nhiên) .

Vì vậy, URL yêu cầu của tôi trông như thế này:

http://twitter.com/oauth/request_token?oauth_callback=http%3A%2F%2Fmydomain.com%2Ftwittercallback

chỉ vì bạn đọc spec không có nghĩa là TWITTER đọc nó. : P

đùa - điều này về cơ bản là chính xác - nhưng cách twitter thích nhận dữ liệu này hơi khác một chút (và không được ghi chép đầy đủ).

cách tôi đã tìm thấy để nhận được oauth_callback để xác nhận như sau: chỉ định oauth_callback trong các tham số của hàm yêu cầu, KHÔNG trong URL.

python dụ (sử dụng OAuth2):

''' Create our client.''' 

client = oauth.Client(consumer) 

''' do the request ''' 

resp, content = client.request(request_token_url,"POST",body=urllib.urlencode({'oauth_callback':callbackURL})) 


''' note that it's called "body" in this particular OAuth function for Client but in OAuth Request object it's called "parameters." YMMV depending on programming language/ library of course. ''' 

đây là CŨNG cách duy nhất tôi đã quản lý để có được một oauth xác minh lại.được cho là không nên chỉ định URL gọi lại mỗi lần, vì chúng tôi cung cấp URL trong cài đặt ứng dụng ... nhưng trải nghiệm dường như chỉ ra khác.

cuối cùng, hãy lưu ý rằng ở chân 3 bạn phải làm điều tương tự AGAIN - lần này bao gồm cả oauth_verifier cũng như URL gọi lại trong các tham số.

hy vọng điều này sẽ giúp - không thể bắt đầu cho bạn biết tôi đã nỗ lực bao nhiêu để tìm ra điều này.

chúc may mắn!

J

1
<?php 
    // oauth-php example 
    $token = OAuthRequester::requestRequestToken(
       $consumer_key, 
       $user_id, 
       array('oauth_callback'=> urlencode($callback_uri)) 
      ); 
?>