2009-10-21 5 views
3

Yammer에서 데이터를 가져 오는 작은 webapp를 작성하려고합니다. 데이터에 액세스하려면 Yammer의 OAuth 브리지를 통과해야합니다. 나는 Oauth php library을 사용하고 3 방향 핸드 셰이크를 시도했다. 하지만 마지막 단계에서 잘못된 OAuth 서명이 있음을 알리는 오류가 발생합니다. 여기 Yammer Api를 사용하는 중에 잘못된 OAuth 서명이 반환되었습니다.

는 일련의 단계입니다

  1. 첫 번째 부분은 포함 요청 토큰 URL 및이 내가 통과 쿼리 매개 변수입니다을 받고. 이 단계가 완료되면 다음

    [oauth_version] => 1.0 
        [oauth_nonce] => 4e495b6a5864f5a0a51fecbca9bf3c4b 
        [oauth_timestamp] => 1256105827 
        [oauth_consumer_key] => my_consumer_key 
        [oauth_signature_method] => HMAC-SHA1 
        [oauth_signature] => FML2eacPNH6HIGxJXnhwQUHPeOY= 
    
  2. 는 I 요청 토큰을 얻을 :

    [의 oauth_token] => 6aMcbRK5wMqHgZQsdfsd [oauth_token_secret] => ro8AJxZ67sUDoiOTk8sl4V3js0uyof1uPJVB14asdfs를 [oauth_callback_confirmed] => 진정한

  3. 그런 다음 매개 변수를 authorize url에 전달하여 주어진 토큰 및 토큰 보안을 인증하려고합니다. Yammer와 통화 할 수 있도록 Yammer의 인증 페이지로 이동합니다.

  4. Yammer는 내 응용 프로그램에 다시 입력해야하는 4 자리 코드를 제공합니다.이 코드는 영구 액세스 토큰을 얻으려고합니다. 나는 액세스 토큰 URL에 다음과 같은 정보를 전달 : 여기

    [oauth_version] => 1.0 
        [oauth_nonce] => 52b22495ecd9eba277c1ce6b97b00fdc 
        [oauth_timestamp] => 1256106815 
        [oauth_consumer_key] => myconsumerkey 
        [callback_token] => 61A7 
        [oauth_token] => 6aMcbRK5wMqHgZQsdfsd 
        [oauth_token_secret] => ro8AJxZ67sUDoiOTk8sl4V3js0uyof1uPJVB14asdfs 
        [oauth_callback_confirmed] => true 
        [oauth_signature_method] => HMAC-SHA1 
        [oauth_signature] => V9YcMDq2rP7OiZTK1k5kb/otMzA= 
    
  5. I가의 Oauth 영구 액세스 토큰을받을 수 있겠으나 나는 무효의 Oauth 서명를 얻을. 나는 내가 뭘 잘못하고 있는지 몰라. 요청에 서명 할 때 동일한 서명을 사용합니다. 새 토큰과 비밀을 사용하여 요청에 서명해야합니까? 나는 그것을 시도했지만 아무 소용이 없다. 심지어 signpost library을 사용하여 자바에서 이것을 구현하려고 시도하고 정확히 같은 장소에 머물렀다. 도움말 도움말 !!

답변

0

는 Yammer가 올해 초에 OAuth 보안 권고에 대한 응답으로 도입 한 것입니다. OAuth 1.0a가 출시되었을 때 대신 oauth_verifier이라는 이름이 지정되었습니다. 그러나 Yammer가 해결 방법을 계속 지원하지만 이름을 바꾸고 다시 시도하도록하는 것은 거의 불가능합니다. 또한

의 불평 개발 네트워크에서 아래에있는 정보는 어제 :

내일 우리가 에 불평 API에 대한 몇 가지 변화를 방출 될 것이다 API 클라이언트에서 스위칭 사용자 네트워크를 용이하게합니다. 변경 사항의 대부분은 OAuth 액세스 토큰 호출에 있으며 은 주어진 사용자에 대해 사전 승인 된 OAuth 액세스 토큰을 생성하도록 허용합니다. 해당 네트워크에 대해 각각 네트워크에 대해 하나의 토큰이 생성되고 클라이언트는 네트워크에 적절한 토큰을 사용하여 서명 된 API 요청을 전송하여 네트워크를 전환합니다.

이 변경 사항에 따라 Yammer OAuth 라이브러리를 업데이트해야한다고 가정합니다. 나는 아직 그것을 보지 못했다.

편집 : 내라이브러리는 Yammer가 측면에서 변경 했음에도 불구하고 여전히 작동합니다.

편집 2 :HMAC-SHA1 대신 서명 방법 PLAINTEXT을 사용해 볼 수 있습니까? 저는 Yammer와 HMAC-SHA1에 문제가있었습니다.

0

PLAINTEXT를 사용해 보았습니다.하지만이 방법에서는 토큰을 요청할 때도 "잘못된 OAuth 서명"오류가 발생합니다.

HMAC-SHA1을 사용하는 액세스 토큰을 생성하고 실제 API 메소드에 액세스하기 위해 (즉 메시지를 게시하기 위해) PLAINTEXT를 사용합니까?

0

방금 ​​문제가 발생했습니다.

CONSUMER_SECRET 끝에 앰퍼샌드 ("&")를 추가하는 것을 잊었습니다. 아마도 이것은 당신의 쟁점입니까?

관련 문제