https://github.com/feracommerce/omniauth-fera
Fera OmniAuth strategy to connect your app to a Fera account.
https://github.com/feracommerce/omniauth-fera
bigcommerce fera gems magento magento2 reviews ruby sdks shopify testimonials ugc user-generated-content wix
Last synced: 15 days ago
JSON representation
Fera OmniAuth strategy to connect your app to a Fera account.
- Host: GitHub
- URL: https://github.com/feracommerce/omniauth-fera
- Owner: feracommerce
- License: mit
- Created: 2022-07-28T21:34:03.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-28T23:46:29.000Z (almost 4 years ago)
- Last Synced: 2025-01-23T06:45:08.880Z (over 1 year ago)
- Topics: bigcommerce, fera, gems, magento, magento2, reviews, ruby, sdks, shopify, testimonials, ugc, user-generated-content, wix
- Language: Ruby
- Homepage: https://developers.fera.ai
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://github.com/feracommerce/omniauth-fera/actions/workflows/checks.yml)
# Fera OmniAuth Strategy
This gem adds the omniauth authentication strategy using the oauth2 method for [Fera Partner Apps](https://partners.fera.ai/partner-portal/apps).
To authenticate your partner app on your own follow the instructions in [our developer docs here](https://developers.fera.ai/docs/partners-app-authentication).
# Installation
Add this line to your application's Gemfile:
```ruby
gem 'omniauth-fera', '~> 0.1'
```
And then execute:
$ bundle install
# Setup
Add this code to your initializer if you're using Rails (`config/initializers/fera.rb`) or somewhere else if you're not.
```ruby
Rails.application.config.middleware.use OmniAuth::Builder do
provider :fera,
ENV['FERA_CLIENT_ID'], # Or replace with your Fera app API client ID
ENV['FERA_CLIENT_SECRET'], # Or replace with your Fera app API client secret
callback_url: ENV['FERA_REDIRECT_URI'], # Something like https://www.example.com/auth/fera/callback and should Fera App settings
scope: 'read write' # If you're only reading data then omit the 'write' scope.
end
```
You can find your client ID, client secret and redirect URI in the [Fera partner app edit screen](https://developers.fera.ai/docs/partners-app-authentication).
# Usage
After doing the above and rebooting your rack-based web server you can follow the same conventions as found in the
[OmniAuth gem docs here](https://github.com/omniauth/omniauth).
That just means:
1. You can start an authentication flow by going to /auth/fera
2. You need to implement/route `/auth/fera/callback` to a controller action or something similar for your framework.
3. Within you can grab the auth token from `request.env['omniauth.auth']['credentials']['token']` like this:
```ruby
auth_token = request.env['omniauth.auth']['credentials']['token']
```
Save this token value to your database so you can use it later.
BTW, you'll also receive `store_id`, `store_domain`, `owner_email` and `store_public_key` for your convenience in the GET params of the callback.
Your auth token (AKA access token, AKA auth key) can be used as an API key to access the
[Fera Private API documented here](https://developers.fera.ai/reference/authentication).
### Pre-setting the store/shop
If you already know the Fera account, domain or store you want to connect to in your app you can pass the `?shop` parameter
with the authentication request like this:
* `/auth/fera?shop=example.myshopify.com` (canonical domain), or
* `/auth/fera?shop=fsto_someStoreId123` (Fera ID), or
* `/auth/fera?shop=example.com` (vanity domain), or
Once you have an auth key you can use the Fera API easily through the [Fera API gem](https://github.com/feracommerce/fera-api-ruby) like this:
```ruby
Fera::API.configure(auth_token) do
Fera::Review.all # Returns all reviews from the authorized account/store.
end
```
# Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/feracommerce/omniauth-fera.
### How to contribute
To contribute to the repository:
1. Fork the repository.
2. Clone the forked repository locally.
3. Create a branch descriptive of your work. For example "my_new_feature_xyz".
4. When you're done work, push up that branch to **your own forked repository** (not the main one).
5. Visit https://github.com/feracommerce/omniauth-fera and you'll see an option to create a pull request from your forked branch to the master. Create a pull request.
# License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).