NAME
API::Medium - Talk with medium.com using their REST API
VERSION
version 0.902
SYNOPSIS
use API::Medium;
my $m = new({
access_token=>'your_token',
});
my $hash = $m->get_current_user;
say $hash->{id};
my $url = $m->create_post( $user_id, $post );
my $other_url = $m->create_publication_post( $publication_id, $post );
DESCRIPTION
It's probably a good idea to read the Medium API docs first, especially as the various data structures you have to send (or might get back) are not documented here.
See example/hello_medium.pl for a complete script.
Authentication
OAuth2 Login
Not implemented yet, mostly because medium only support the "web server" flow and I'm using API::Medium
for an installed application.
Self-issued access token / Integration token
Go to your settings, scroll down to "Integration tokens", and either create a new one, or pick the one you want to use.
Methods
new
my $m = API::Medium->new({
access_token => $token,
});
Create a new API client. You will need to pass in your $token
, see above on how to get it. Please make sure no not leak your Integration Token. If you do, anybody who has it can take over your Medium page!
get_current_user
my $data = $m->get_current_user;
Fetch the User "object".
You will need this to get the user id
for posting. Depending on your app you might want to store your id
in some config file to save one API call.
publications
Not implemented yet. Listing the user's publications
/users/{{userId}}/publications
contributors
Not implemented yet. Fetching contributors for a publication.
/publications/{{publicationId}}/contributors
create_post
my $url = $m->create_post( $user_id, $post_data );
Create a new post. If you pass in bad data, Medium will probably report an error.
publishStatus
is set to 'draft' unless you pass in another value.
create_publication_post
my $url = $m->create_publication_post( $publication_id, $post_data );
Create a new post under a publication. You will need to figure out the publication_id by calling the API from the commandline (until publications
is implemented.)
If you pass in bad data, Medium will probably report an error.
publishStatus
is set to 'draft' unless you pass in another value.
TODO
OAuth2 Login
Get a new access_token from refresh_token
publications
contributors
Thanks
Thanks to Dave Cross for starting Cultured Perl, which prompted me to write this module so I can auto-post blogposts from my private blog to medium.
AUTHOR
Thomas Klausner <domm@plix.at>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 - 2021 by Thomas Klausner.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.