Flyover is a MyBB plugin which makes it easy and faster for users to register and login through 26 social networks. This document will help you setting up the plugin after you have uploaded and installed the plugin successfully. It is always tailored to the latest Flyover version available.
Installation
To install Flyover, simply click on the Install & activate button in your plugins list. Flyover adds 18 templates and 1 stylesheet to every theme of your board. Flyover also tries to add its widget variable,
<flyover_login_box>, to the following templates:
header_welcomeblock_guest_login_modal
error_nopermission
While there shouldn't be any problem adding the widget to header_welcomeblock_guest_login_modal, as it's just appended to the template, custom themes might break the search and replace pattern used to alter error_nopermission. Therefore, if you want to show the widget in those templates, ensure the variable is in place and if not, add it manually. You can place it in whatever template you want.
Note that header_welcomeblock_guest_login_modal is available for MyBB 1.8.17 onwards. If you are running a previous version, you will need to insert the widget manually.
Enabling a social network
Flyover is ready to go as soon as you install it, however, you need to configure each social network integration you intend to use on your board.
Go to Flyover's main panel (Configuration > Flyover) first. You will be presented a list of social networks and a series of grayed out inputs. Click on a social network's name to configure it.
Setting up a social network application
You will now need to set up an
application. This is required for your board to communicate with a particular social network and exchange informations about users' identities, which is mandatory to authenticate and grant them access.
Look up for the "developer" site of the social network of interest. Then, follow the instructions to create an application. Providers change their sites frequently and it's not feasible for me to create an illustrated guide for all of them; however, you will soon find that it's quite seamless to create one.
The redirect URI
One of the main challenges you may end up with is to find the correct redirect URI. Most of social networks require your application to deliver a redirect URI – a safe and approved link which all requests will lead to upon exchanging sensitive pieces of information. Flyover sports a standardized redirect URI which requires minimal adjustments per each social network. For your convenience, a pre-built redirect URI is available in every social network configuration page.
The standardized redirect URI looks like this:
{boardurl}/flyover.php?action=login&provider={name}
{boardurl} is your board's URL, while {name} should be adjusted accordingly for every social network. For example, MyBBoost's Facebook redirect URI looks like this:
https://www.mybboost.com/flyover.php?action=login&provider=Facebook
Some social networks, such as Twitter, do not accept query strings (everything after the question mark in the link) in their redirect URIs. If so, strip them out from the URI, and you should be fine. For example, MyBBoost's Twitter redirect URI looks like this:
https://www.mybboost.com/flyover.php
Please ask if you are still getting troubles into making it work.
Tokens
Once you have finished setting up the developer application, identify the application's tokens. Think about them as usernames and passwords: users will pass through your app, and the app will communicate to every social network using its own tokens. There are 3 types of tokens:
identifier (or simply id),
secret and
key. Most social networks will show them in the application's setup homepage.
Copy and paste the tokens in the correct input fields in Flyover. Save, and your board is now ready to accept registrations and logins though the social network you have set up.
Synchronization
Extensibility plays a crucial role in Flyover's potential. Users are able to import several informations from their social network accounts to their MyBB's accounts (and not viceversa). This is the so-called
synchronization. Currently, the following data points can be collected and imported:
avatar
cover – if Profile Picture plugin is installed
website
sex
location
language
biography
identifier
email
profile URL
Users can opt out of single data points by (un)ticking checkboxes off in their User Control Panels. Administrators can decide whether if to use a data point or not from each social network's settings panel.
Synchronization occurs automatically upon each log in. Every social network exposes different data points and this partially depends on the requested scopes. To know more about scopes, continue reading this document.
Avatar and website have a corresponding standard field in MyBB; all the other data points can be matched against a custom profile field of your choice. A global on/off switch and match for each one is available in Flyover's general settings. A more sensitive, provider-specific point-to-field match can be set in every provider's settings panel.
Custom scopes
Your board will constantly ask social networks permission to collect informations about users. Permissions are called
scopes in technical language. Hybridauth is configured to get as much informations as possible, therefore it might send lots of scopes which you might not necessarily need.
Flyover lets you set up custom scopes to override Hybridauth's default behavior. This is particularly useful for those social networks such as Facebook and Google who require you to write down a detailed description of how you are using certain permissions. Especially those data points which refer the most to an individual's identity, such as location and birthday, have usually restricted access.
Furthermore, API change over time, seldom very quickly in a way that Hybridauth's authors can't keep up social networks' pace and it ends up being slightly behind the latest allowed scopes. If your application starts to warn you about expiring or invalid scopes, you can exploit custom scopes and fix the issue quickly without waiting for a plugin's update.