Glimta Unlock now supports Native URLs !

Up until now we have only been able to offer the Glimta Unlock service with links beginning with https://glimta.com/u/…

Now, we have added support for native links!

With this, the link can be something like:
https://www.thenewspaper.com/some-locked-news-article#GLIMTA_UNLOCK:ABC123
(for client side paywalls)

…or
https://www.thenewspaper.com/some-locked-news-article?GLIMTA_UNLOCK:ABC123
(for server side paywalls)

Client side or Server side paywalls?

Paywalls can be of two types: Client or Server side.

With client side paywalls, the page content is protected with code embedded inside the web page, in the html code. (=The article is there but only readable for subscribers).

Server side paywalls checks if the user is logged in as a valid subscriber before sending out the article.

Glimta supports both Client and Server side paywalls.

Client side Paywalls

For newspapers using a client-side (frontend) paywall technology, the unlock token will be added to the page’s url with an #.
Example:
https://www.thenewspaper.com/some-locked-news-article#GLIMTA_UNLOCK:ABC123

Add the script code below to your sites html and complete with the code needed to remove the paywall from the page

<script src="https://glimta.com/scripts/unlock.js"></script>
<script>
    $glimta.unlock(function() {

        // TODO:
        // ADD YOUR CODE TO REMOVE THE PAYWALL FOR THE ARTICLE/PAGE HERE
    });
</script>

 

Server side Paywalls

For newspapers using a server side (backend) paywall technology, the unlock token will be added to the page’s url with a ?.

Example:
www.thenewspaper.com/some-locked-news-article?GLIMTA_UNLOCK=ABC123

You need to add code to your servers backend that looks for this parameter, and if found, executes a query towards GLIMTAs REST-endpoint “https://glimta.com/u/<token>” to check if the unlock is still valid or not.

The response to this call is:

The response to this call is:

# VALID
{
    "status": true,
    "visit_id": "ABC123"
}

# EXPIRED
{
    "status": false,
    "expired": true,
    "expired_date": "yyyy-mm-dd"    // can be null
    "expired_total": 0..nn          // can be null
}

A simple (and naive) implementation in Python might look something like below:

import requests

...

# Your Server's GET requests endpoint
def get(request):

    # get climta unlock token from querystring
    glimta_token = request.args.get("GLIMTA_UNLOCK")

    if glimta_token:

        # call GLIMTA REST-api to check if unlock is valid
        r = requests.get("https://glimta.com/u/" + glimta_token)

        if r.status_code == 200:

            glimta_unlock = r.json()

            if glimta_unlock["status"] == True:

                # 1 ADD CODE TO REMOVE THE PAYWALL

                # 2 INCLUDE THE SCRIPT "https://glimta.com/scripts.js" ON THE PAGE

                # 3 INJECT A JAVASCRIPT TO CALL "_rp(visit_id)" WHERE visit_id IS FOUND IN THE RESPONSE: r["visit_id"]
                #
                #  FOR EXAMPLE IN TEMPLATE:
                #
                #  <script>_rp('{visit_id}');</script>


            # optional: present some info to user that the unlock is not valid
            else:
                pass

/Mikael Runhem