PHP에서 직접 OAuth 라이브러리 및 래퍼 클래스를 작성하는 데 큰 실수를 저지르고 있습니다. 트위터의 OAuth 구현에 대해서는 모든 것이 훌륭하게 작동하지만 Tumblr 및 Flickr에 대한 access_token 단계에 실패합니다.OAuth 액세스 토큰 (특정 언어가 아님) 얻기 - Flickr 및 Tumblr에 대해서는 트위터가 아니지만 동일한 문제가 발생합니다.
해당 단계의 유일한 차이점은 이제 oauth_token 및 oauth_verifier 매개 변수입니다. Authorization 헤더를 사용하고 있는데, 내가 생각할 수있는 유일한 문제는 문자 인코딩 문제가 있다는 것입니다. 그러나 확실하지 않습니다. (명확성을 위해 파손)
자료 문자열 :
이 플리커 (그들은 오류 응답, 그래서 나에게) 기대 정확히 무엇POST&
http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Faccess_token&
oauth_consumer_key%3Deeedfcd4c46a2c12080f58eb90a974d8
%26oauth_nonce%3D322190b47ca680d053338724ad1cc56d35d3e7b5
%26oauth_signature_method%3DHMAC-SHA1
%26oauth_timestamp%3D1322981994
%26oauth_token%3D72157628270097303-18aa378b4ab02af3
%26oauth_verifier%3Dec7811503fdd4380
%26oauth_version%3D1.0
는, 서명이 문제가 있는게 틀림 없어.
인증 (또한 명확하게하기 위해 깨진) 헤더 :
Authorization: OAuth
oauth_consumer_key="eeedfcd4c46a2c12080f58eb90a974d8",
oauth_nonce="322190b47ca680d053338724ad1cc56d35d3e7b5",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1322981994",
oauth_token="72157628270097303-18aa378b4ab02af3",
oauth_verifier="ec7811503fdd4380",
oauth_version="1.0",
oauth_signature="LYJtgHetQWNKX3rtQlSs643FdWY%3D"
그리고 플리커 (Flickr)의 응답 :
oauth_problem=signature_invalid&
debug_sbs=POST&
http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Faccess_token&
oauth_consumer_key%3Deeedfcd4c46a2c12080f58eb90a974d8
%26oauth_nonce%3D322190b47ca680d053338724ad1cc56d35d3e7b5
%26oauth_signature_method%3DHMAC-SHA1
%26oauth_timestamp%3D1322981994
%26oauth_token%3D72157628270097303-18aa378b4ab02af3
%26oauth_verifier%3Dec7811503fdd4380
%26oauth_version%3D1.0
더 GET 또는 POST 매개 변수가 없습니다. 모든 것은 내가 여기서 본 것에서 올바르게 벗어난 것처럼 보인다. 서명은 request_token 단계 (트위터의 경우 ANY 요청)에서 작동합니다. 내 서버 시계가 초 이내에 있는지 확인했습니다. 나는 명백한 것을 놓치고 있는가? 어떻게 진단 하시겠습니까?
어떤 문제가 발생합니까? 오류입니까? –
하하. 오류를 잊어 버린 것에 대한 모든 정보를 제공하는 데 중점을 두었습니다. 미안, 1 초! – landons