PERL - API доступа Strava Войти к моим данным - LWP :: Authen :: OAuth2 - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть некоторый код, и я войду в свои данные. Кто может помочь мне получить мои данные? Я не получаю токен с этим кодом :-( LWP :: Authen :: OAuth2 - новая территория для меня. Заранее спасибо. Здесь https://metacpan.org/pod/LWP :: Authen :: OAuth2 Я не знаю вполне понятен и при простом входе не работает.

use LWP::Authen::OAuth2;

# Constructor
my $oauth2 = LWP::Authen::OAuth2->new(
                 client_id        => "my numbre",
                 client_secret    => "s3cr3t fr0m svc prov",
                 service_provider => "Strava",
                 redirect_uri     => "localhost",
                 response_type    => "code",
                 scope            => 'read_all',

                 # Optionaler Haken, aber empfohlen.
                 save_tokens => \&save_tokens,
                 save_tokens_args => [ $dbh ],

                 # Dies ist der Fall, wenn Sie Token vom letzten Mal haben.
                 token_string => $token_string,
             );

# URL, zu der der Benutzer gehen muss, um den Prozess zu starten.
my $url = $oauth2->authorization_url();
print "url: ".$url."\n";

# Die authorisation_url sendet den Benutzer an den Dienstanbieter an
# sagen, dass Sie autorisiert werden möchten. Nachdem der Benutzer dies bestätigt hat
# Anfrage sendet der Dienstanbieter den Benutzer mit einem an Sie zurück
# Code. Dies kann ein CGI-Parameter sein, der der Benutzer ist
# soll zu Ihnen einfügen - das ist zwischen Ihnen und dem Dienst
# Anbieter.

# Angenommen, Sie haben Ihren Code, erhalten Sie Ihre Token vom Dienst
# Anbieter.
### $oauth2->request_tokens(code => $code);

# Holen Sie sich Ihr Token als Zeichenfolge, die Sie einfach speichern, weitergeben usw. können.
# Wenn Sie einen save_tokens-Rückruf haben, wird dieser String übergeben
# wann immer sich die Token ändern.
#
# Diese Zeichenfolge weist eine verdächtige Ähnlichkeit mit serialisiertem JSON auf.
my $token_string = $oauth2->token_string,
print "token_string: ".$token_string."\n";

# Greifen Sie auf die API zu. Informationen dazu finden Sie in der Dokumentation des service_providers
#, um welche Art von Anfrage zu verwenden. Beachten Sie, dass die Argumentverarbeitung die ist
# wie in LWP. Somit sind das Parameterarray und der Header-Hash beide
# Optional.
### $oauth2->get($url, %header);
### $oauth2->post($url, \@parameters, %header);
### $oauth2->put($url, %header);
### $oauth2->delete($url, %header);
### $oauth2->head($url, %header);

# Und wenn Sie mehr Flexibilität benötigen, können Sie die Anfrage von LWP :: UserAgent verwenden
# Methode
### $oauth2->request($http_request, $content_file);

# In einigen Flows können Sie Token aktualisieren, in anderen müssen Sie durchlaufen
# den Händedruck selbst. Diese Methode informiert Sie darüber, ob eine Aktualisierung erfolgt
# sieht möglich aus.
### $oauth2->can_refresh_tokens();

# Diese Methode informiert Sie, wann es Zeit ist, eine erneute Autorisierung durchzuführen, damit Sie
# kann es besser herausfinden, als einen API-Aufruf fehlzuschlagen.
### $oauth2->should_refresh();
...