You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Access scopes can be configured either in the Developer Dashboard when creating an app version or in your app's [TOML configuration file](https://shopify.dev/docs/apps/build/cli-for-apps/app-configuration#access_scopes)
38
43
39
44
## Note about Rails
40
45
If using in the Rails framework, we highly recommend you use the [shopify_app](https://github.com/Shopify/shopify_app) gem to perform OAuth, you won't have to follow the instructions below to start your own OAuth flow.
@@ -49,6 +54,8 @@ If you aren't using Rails, you can look at how the `ShopifyApp` gem handles OAut
49
54
- Triggering and redirecting user to **begin** OAuth flow
- Completes client credentials flow to get offline access tokens with expiration time.
52
59
53
60
## Performing OAuth
54
61
### Token Exchange
@@ -265,9 +272,41 @@ def callback
265
272
end
266
273
end
267
274
```
268
-
269
275
⚠️ You can see a concrete example in the `ShopifyApp` gem's [CallbackController](https://github.com/Shopify/shopify_app/blob/main/app/controllers/shopify_app/callback_controller.rb).
270
276
277
+
### Client Credentials Grant
278
+
279
+
> [!NOTE]
280
+
> You should consider using the client credentials grant only when building apps for your own organization.
281
+
282
+
> [!WARNING]
283
+
> [token exchange](#token-exchange) (for embedded apps) or the [authorization code grant flow](#authorization-code-grant-flow) should be used instead of the client credentials grant, if your app is a browser based web app.
284
+
285
+
#### Perform Client Credentials Grant
286
+
Use [`ShopifyAPI::Auth::ClientCredentials`](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/auth/client_credentials.rb) to
287
+
exchange the [app's client ID and client secret](https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets) for an access token.
288
+
#### Input
289
+
| Parameter | Type | Required? | Default Value | Notes |
|`shop`|`String`| Yes | - | A Shopify domain name in the form `{exampleshop}.myshopify.com`. |
292
+
293
+
#### Output
294
+
This method returns the new `ShopifyAPI::Auth::Session` object from the client credentials grant, your app should store this `Session` object to be used later [when making authenticated API calls](#using-oauth-session-to-make-authenticated-api-calls).
295
+
296
+
#### Example
297
+
```ruby
298
+
299
+
# `shop` is the shop domain name - "this-is-my-example-shop.myshopify.com"
0 commit comments