2013-09-05 73 views
8

Tôi đang sử dụng OAuth 1.0a cho API LinkedIn. Hiện tại, tôi đã thực hiện một số cuộc gọi để nhận hồ sơ và kết nối và tất cả đều có vẻ hoạt động tốt. Nhưng để gửi thư, thư viện oauth sẽ ném một ngoại lệ với những điều sau:Chương trình xác thực không xác định trên LinkedIn API

{ 
    "errorCode": 0, 
    "message": "Unknown authentication scheme", 
    "requestId": "I2Y0MFJ8ME", 
    "status": 401, 
    "timestamp": 1378376573339 
} 

Tôi đang sử dụng PHP PECL OAuth. Tôi đang khởi tạo $ oauth đối tượng như thế này:

$oauth = new OAuth(API_KEY, API_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_FORM); 
$oauth->setToken(ACCESS_TOKEN, SECRET); 

và thực hiện cuộc gọi còn lại như thế này:

$url = 'https://api.linkedin.com/v1/people/~/mailbox?format=json'; 
$content_type = array('Content-Type' => 'application/json'); 
$oauth->fetch($url, $message, OAUTH_HTTP_METHOD_POST, $content_type); 

và thông điệp $ trông giống như sau:

$message = Array 
(
    [recipients] => Array 
     (
      [0] => z2222117O 
     ) 

    [subject] => this is my title 
    [body] => this is my body 
    [format] => json 
    [id] => EAS123123 
) 

Nó doesn Không giống như có bất cứ điều gì sai trái với yêu cầu. Tôi đã làm theo hướng dẫn từ LinkedIn messaging docs. Bất cứ ai khác có cùng một vấn đề? Cảm ơn trước.

Trả lời

0

Một số câu hỏi trên LinkedIn forums dường như chỉ ra rằng lỗi bạn đang nhận có nghĩa là bạn không có mã thông báo xác thực hợp lệ.

Bạn có chắc chắn bạn đang gửi một mã thông báo xác thực và hoạt động với tin nhắn của mình không?

+1

Có, tôi đã kiểm tra kỹ mã thông báo và mã này vẫn hợp lệ. Và nó cũng hoạt động cho các yêu cầu API khác (lấy hồ sơ, chia sẻ trên tường, vv). – maru

3

Tôi đã trả lời câu hỏi trên liên kết bên dưới, có vẻ như cùng một lỗi. Mặc dù nó có vẻ công nghệ khác nhau, nhưng giải pháp sẽ giống nhau để gửi access_token theo yêu cầu trở lại để có được các tài nguyên được bảo vệ.

Liên kết để bạn tham khảo. Apache Oltu Linkedin Integration example

2

LinkedIn yêu cầu bạn đặt mã thông báo truy cập trong tiêu đề hoặc làm thông số truy vấn có tên không chuẩn là oauth2_access_token. Khi tôi gửi nó như một param truy vấn với tên access_token, tôi đã nhận được lỗi bạn đã làm.