2013-08-11 33 views
8

Đây là lần đầu tiên tôi chơi với api và oauth và tumblr có số php client. Tôi đã tải xuống và cài đặt ứng dụng khách với nhà soạn nhạc. Đây là mã họ phải thiết lập máy khách.nhận mã thông báo oauth với khách hàng php chính thức của tumblrs

$client = new Tumblr\API\Client($consumerKey, $consumerSecret); 
$client->setToken($token, $tokenSecret); 

Tôi biết khóa người dùng và bí mật nhưng làm cách nào để nhận mã thông báo và mã thông báo với khách hàng php tumblrs?

Tôi cũng biết quá trình oauth nhưng tôi không biết làm thế nào để thực sự thực hiện nó:/

Trả lời

4

Để chúng tôi đang ở trong cùng một trang, bạn có thể nhận của người dùng bí mật token và bằng cách đi qua các trình diễn luồng đăng nhập trình duyệt. Dòng chảy của Tumblr khá giống với Twitter nên bạn có thể sử dụng nó như là tham chiếu: Implementing Sign in with Twitter. Bạn có thể xem phần OAuth trong Tumblr Authentication documentation để có được điểm cuối chính xác.

Lưu ý rằng Tumblr's PHP client mà bạn liên kết đến có địa chỉ cơ sở mặc định thiết lập để "http://api.tumblr.com/" trong khi điểm cuối OAuth (ví dụ request_token) sử dụng "http://www.tumblr.com". Để có thể sử dụng điểm cuối OAuth, bạn sẽ chỉ phải thay đổi url cơ sở. Dưới đây là một ví dụ về bước đầu tiên trong luồng đăng nhập, nhận được một mã thông báo yêu cầu:

// Requesting for http://www.tumblr.com/oauth/request_token 

$client = new Tumblr\API\Client($consumerKey, $consumerSecret); 
// Change the base url 
$client->getRequestHandler()->setBaseUrl('http://www.tumblr.com/'); 
$req = $client->getRequestHandler()->request('POST', 'oauth/request_token', [ 
    'oauth_callback' => '...', 
]); 
// Get the result 
$result = $req->body->__toString(); 

Bạn nên có được điều này trong $result:

oauth_token=ulE1EuaZvJSN0qIKfQO5EFgcrxrOLJF0Cnm7VbLQqj66oF9nwt&oauth_token_secret=PLjC7s4JeIlgm53q7FKL1wqQkFoL0775JC6UkHKiepAQ6TxXxp&oauth_callback_confirmed=true 

Xem commit này trong Github để biết thêm về cách điều này đã được thực hiện.

+0

sau khi tôi nhận khóa oauth Tôi không thể chạy bất kỳ lệnh api nào như '$ client-> getBlogInfo ($ blogname);'. nó ném 'Lỗi nghiêm trọng: Không bắt buộc Tumblr \ API \ RequestException: [404]: Không tìm thấy được ném trong lib \ Tumblr \ API \ Client.php trên dòng 426' còn thiếu gì nữa? – Yamiko

+1

@yamikoWebs Vì bạn đã thay đổi 'baseUrl', bạn sẽ phải thay đổi lại:' $ client-> getRequestHandler() -> setBaseUrl ('http://api.tumblr.com'); 'hoặc bạn có thể tạo một cá thể 'Tumblr \ API \ Client' riêng biệt. – Shiki

+0

vượt quá phạm vi của câu hỏi này nhưng làm cách nào để tôi cho phép tôi có thể gửi bài đăng với api? – Yamiko

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