Strava Plugin - Issues Displaying List of Activities

Hello,

I’m working on an app which relies on Strava data to be pulled in. I’ve installed the plugin and go through authentication all fine. I can also see my lifetime stats.

Am new to Bubble and I’m hoping this is a simple fix. My problem is that when I try to get a list of activities in a Repeating Group, I don’t get any results.

Is the Repeating Group configured right?

Type of Content: “List of Activities (Strava)” is selected
DataSource: Get Data from an External API , then List of Activities is selected. This turns the field blue, which i would hope indicates is ok.

When I preview the app I get my stats, but I don’t get the list of activities populated against any of the fields I’ve input (such as a text box indicating “Current Cell’s List of Activities Strava’s Name”.

Any help here? I’ve even tried recreating the plugin from scratch but I get the same results on that.

Thanks in advance!

Can you inspect your RG and check everything around the Get Data From an External API setting to be sure that the request is correct? Also, you can look at browser console to find possible setting error.

I guess that’s mainly what I’m asking for… Do I have the RG configured or is it a case of the API being an issue?

Here’s screenshots of the RG and the text box.
CellContent RepeatingGroup

I’m assuming from the colors that Bubble is seeing these as valid queries. Would you suggest looking to the API call via the browser console then?

The type of data is correct. But it doesn’t mean that the API call is setting correctly. You can see the result of the API Call in your logs. You need to click on advanced and check what is related to plugin in HTTP or API Connector data. Load the page and inspect your logs.
Also, in debug_mode, you can see possible error but also your call setting or result while you inspect your RG

Ok, I’m in the debugger. On inspection of the RG it’s saying the “data source is empty” and that the API call returned a 404 error (item not found. Google feedback says this seems to primarily be linked to authentication issues, but the Swagger results all show the same authorization token, so there doesn’t seem to be recursive requests). I’ve checked the API call using the developer Swagger tester and it returns expected results.

I can’t seem to figure out how to see the GET call and response though from the debugger. It just shows the error.

Any ideas or guidance on this?

404 error is not an authorization error but a not found error.
If I remember the call, there was no dynamic setting in this call, so basically, the url of the API plugin is not correct.

If you can, check if the url is this one: https://www.strava.com/api/v3/athlete/activities
If not, this is the problem. If yes. check if the request is a GET one.

You may need to contact plugin author about this issue or use the API Connector to create your own connection

I got it resolved. I removed parameters that weren’t essential which evidently were causing some issues. Retested and got a 401 error. Ran in incognito mode and got results that I expected.

Thanks for the help!

1 Like

Hi @jeff.stroh ,

Are you connecting with Strava using a plugin or using API Connector? Mind sharing your settings? I am integrating Strava into my app to allow user to connect with their Strava account and data.

Hey @it14,

I’m currently working on the same thing. Running into one or two roadblocks at the minute.

Did you managed to get things set up correctly?

Cheers

Hey folks, sorry for delay. I can look into sharing the plugin. I did get this working.

3 Likes

Yes I did. I can share what I did with you soon.

1 Like

This is how I did it

  1. When redirect back to my app, I take “code” from url

Then get Strava access token to save to database (access token, refresh token, expiry etc)

  1. After that, run get Strava refresh token if needed, then save access token to database for other calls in the future

2 Likes

This was awesome and working for me - thanks so much. But now I’m repeatedly getting the same error as I’ve been asked to initialize the call again:

“Raw response for the API
Status code 401
{“message”:“Authorization Error”,“errors”:[{“resource”:“Application”,“field”:”",“code”:“invalid”}]}"

Not sure if others have recently been experiencing this error. I’ve tried a number of different plugins but seeing the same issue.

Hello @it14 , I’m also trying to use Strava in my Bubble App but I’m facing the 401 code when trying to make the API Call for oauth/token.

I’m setting code to the code received after redirect and redirect_url to my application.

Can you give me a little help?

Did anyone find a solution on the " 401 code" error with this plugin?

Thanks

Frankly still pulling my hair out as it appears others are as well. For months I’ve had a working app using Signup/Signin with a Social Network and a Strava API plugin I built (similar to other, just more commands. I recently built out another app, based on a template to add some more functionality, and the exact same plugin, with all the same steps, now gives a 401 error.

  • The above process, gives a 401 error.
  • Standard login with a social network gives a 401 error.
  • Having a redirect to a backend workflow with a Token Exchange POST (which authenticates perfectly in the API), gives a 401 or 405 error…

Not sure where else to turn since one app works perfectly and the other doesn’t…

1 Like

@leonardo.cardoso, @fahey.chris, @jeff.stroh @andrew15

hi all! I followed @it14’s instructions and it works like a charm. He left out a few details that might be the cause of your struggle…

The code in the URL is going to change each time that someone authorizes and it’s a one-time use code.

So what you need to do is first, create a button that navigates to the external URL to get the code for the first time. Copy the code from the url and plug that into the code parameter value in the api connector. Then Initialize the call and save off the data types. Don’t change anything in the api call otherwise you’ll need to repeat that process.

Once that’s done, create a workflow that runs when page is loaded and when get code from url is not empty, which calls the Get Strava Access Token shown in step 2 outlined above. Then save the details coming from the api to a user profile. This is the workflow that your users will use each time they connect to strava.

Note that if you now try to reinitialize the api connector on that call, you may have a conflict because your one-time code is going to have already been used via the when page loads workflow, which would result in an authorization error similar to the one you’re seeing.

Hopefully that helps, but let me know if you get stuck. :slight_smile:

1 Like

Thank you @Zaque for explaining in detail. Hope everyone can get it to work.

1 Like