2013-04-20 29 views
9

Tôi đang cố gắng tạo mã thông báo OAuth từ dòng lệnh bằng cách sử dụng instructions here. Tôi có thể sử dụng curl từ dòng lệnh, và nhận được câu trả lời đúngSử dụng RCurl/httr để cấp phép Github cơ bản

curl -u 'username:pwd' -d '{"scopes":["user", "gist"]}' \ 
    https://api.github.com/authorizations 

Bây giờ, tôi muốn lặp lại giống nhau ở R sử dụng RCurl hoặc httr. Đây là những gì tôi đã thử, nhưng cả hai lệnh đều trả về lỗi. Bất cứ ai có thể chỉ ra những gì tôi đang làm sai ở đây?

httr::POST(
    'https://api.github.com/authorizations', 
    authenticate('username', 'pwd'), 
    body = list(scopes = list("user", "gist")) 
) 

RCurl::postForm(
    uri = 'https://api.github.com/authorizations', 
    .opts = list(
    postFields = '{"scopes": ["user", "gist"]}', 
    userpwd = 'username:pwd' 
) 
) 
+2

trong 'danh sách .opts', hãy thử thêm 'httpauth = 1L' –

+1

Hãy thử sử dụng lá cờ tiết để xem chính xác những gì đang xảy ra – hadley

+0

Và trong' authenticate', thiết lập' type = "cơ bản" ' – hadley

Trả lời

0

Câu hỏi là tuổi già, nhưng có thể vẫn hữu ích với một số vấn đề: Vấn đề phải là đối số opts được truyền theo cách sai (thiếu lời gọi hàm curlOptions). Những điều sau đây đã hiệu quả với tôi trong một ngữ cảnh khác:

result <- getURL(url,.opts=curlOptions(postfields=postFields)) 

(và có, theo như tôi biết bạn có thể sử dụng hàm getURL cho yêu cầu POST).

Các vấn đề liên quan