[Python-modules-commits] [python-social-auth] 27/71: Add signed request signature for Instagram

Wolfgang Borgert debacle at moszumanska.debian.org
Sat Dec 24 15:14:24 UTC 2016


This is an automated email from the git hooks/post-receive script.

debacle pushed a commit to tag v0.2.14
in repository python-social-auth.

commit 04a074263a7905fb36cc898444a72134d641c400
Author: Julian Bez <julian.bez at gmail.com>
Date:   Wed Sep 16 10:03:54 2015 +0200

    Add signed request signature for Instagram
---
 social/backends/instagram.py | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/social/backends/instagram.py b/social/backends/instagram.py
index 509aa01..5c84211 100644
--- a/social/backends/instagram.py
+++ b/social/backends/instagram.py
@@ -2,6 +2,8 @@
 Instagram OAuth2 backend, docs at:
     http://psa.matiasaguirre.net/docs/backends/instagram.html
 """
+from hashlib import sha256
+import hmac
 from social.backends.oauth import BaseOAuth2
 
 
@@ -35,5 +37,15 @@ class InstagramOAuth2(BaseOAuth2):
 
     def user_data(self, access_token, *args, **kwargs):
         """Loads user data from service"""
+        key, secret = self.get_key_and_secret()
+        params = params={'access_token': access_token}
+        sig = self._generate_sig("users/self", params, secret)
+        params['sig'] = sig
         return self.get_json('https://api.instagram.com/v1/users/self',
-                             params={'access_token': access_token})
+                             params)
+
+    def _generate_sig(self, endpoint, params, secret):
+        sig = endpoint
+        for key in sorted(params.keys()):
+            sig += '|%s=%s' % (key, params[key])
+        return hmac.new(secret.encode(), sig.encode(), sha256).hexdigest()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-social-auth.git



More information about the Python-modules-commits mailing list