kaibotan/strava-login

This package is abandoned and no longer maintained. The author suggests using the codetoad/strava package instead.

A package that uses the Strava api to login, and has basic get and post requests. For laravel

dev-master 2018-01-13 10:21 UTC

This package is not auto-updated.

Last update: 2020-04-05 19:18:06 UTC


README

This package helps you to easily login your Strava account, and access the API. To use this package you will need to make a Strava app for more info checkout the documentation of the Strava API https://strava.github.io/api/

Installation

Require this package with composer. It is recommended to only require the package for development.

composer require KaiBotan/strava-login

Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.

Don't forget to edit your .env file with your Strava app values.

STRAVA_KEY=yourkeyfortheservice
STRAVA_SECRET=yoursecretfortheservice
STRAVA_REDIRECT_URI=https://example.com/login

Laravel 5.5+:

If you don't use auto-discovery, add the ServiceProvider to the providers array in config/app.php

KjellKnapen\Strava\StravaServiceProvider::class,

If you want to use the facade to log messages, add this to your facades in app.php:

'Strava' => KjellKnapen\Strava\StravaFacade::class,

Usage

Login user

Strava::redirect(); //redirects user to Strava to login

You will then be redirected to the url you put in your .env file. Let's say its https://example.com/login The url will have code you can use to send with the tokenexchange and get the user in return.

$code = request()->code;

// Send code to strava to request token en get user
$result = Strava::tokenExchange($code);

now you can go and save the user.

Post

The post method takes 2 variables, $url & $config. The url will be the api url you need to post to, like https://www.strava.com/api/v3/activities to upload a activity. If we look at the documentation we see we need to send some headers and fields with the request, so our code would look something like this.

$url = 'https://www.strava.com/api/v3/activities';

// the token for the header was given to you when Strava returned the user. Make sure you save it in the database per user.
$config = [
    'headers' => [
        'Authorization' => 'Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9'
    ],
    'form_params' => [
        "name" => "Most Epic Ride EVER!!!"
        "elapsed_time" => 18373
        "distance" => 1557840
        "start_date_local" => "2013-10-23T10:02:13Z"
        "type" => "Ride"
    ]
];
$res = Strava::post($url, $config);

return $res;

Get

The get method is similar to the post method and takes 2 variables, $url & $config. The url will be the api url you need to get, like https://www.strava.com/api/v3/athlete/activities to upload a activity. For the get method we wil only need to put a header in our config for authentification

$url = 'https://www.strava.com/api/v3/athlete/activities';

// the token for the header was given to you when Strava returned the user. Make sure you save it in the database per user.
$config = [
    'headers' => [
        'Authorization' => 'Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9'
    ],
];
$res = Strava::get($url, $config);

return $res;

If there are any questions be sure to ask. More options like PUT will be added in the future