Es gibt ein Tool zum Informationsaustausch namens Yammer.
Wenn Sie den Artikel, den Sie gerade lesen, in Pocket bei der Arbeit teilen möchten, habe ich das IFTTT-Rezept verwendet, um ihn auf Pocket zu markieren und an Yammer zu senden.
Dies war praktisch, aber IFTTT hat die Unterstützung von Yammer eingestellt, und ich wollte es immer mit Hatena Bookmark verknüpfen, also nutzte ich diese Gelegenheit, um mein eigenes zu erstellen.
Die Yammer-API hat ein Python-SDK, also werde ich das verwenden. Dieses Mal habe ich beschlossen, Python mit dem 500-Yen-Plan von Sakura Internet auszuführen. Der Punkt ist, --user
in setup.py hinzuzufügen.
$ wget https://github.com/yammer/yam-python/archive/master.zip
$ cd yam-python-master/
$ python setup.py install --user
Registrieren Sie nach Bestätigung des Betriebs der Bibliothek den Anwendungsnamen und die Weiterleitungs-URL, die auf diese Site verweist, und rufen Sie die client_id und client_secret ab. Dieses Mal werden wir Sakura Internet verwenden, also setzen Sie redirect_uri auf "http: // xxxx.sakura.ne.jp / yammer / redirect.cgi".
https://developer.yammer.com/docs/app-registration
Registrieren Sie anschließend den Webhook bei Hatena Bookmark. Gehen Sie wie folgt vor und setzen Sie "http: // xxxx.sakura.ne.jp / yammer / post.cgi" in die "URL zum Empfangen von Ereignisbenachrichtigungen".
http://developer.hatena.ne.jp/ja/documents/bookmark/apis/webhook
Erstellen Sie zunächst eine separate Datei und beschränken Sie den Zugriff mit htaccess, damit Sie nicht versehentlich die client_id und client_secret verlieren.
yammer.conf
[Yammer]
client_id = xxxx
client_secret = xxxx
redirect_uri = http://example.com/redirect.cgi
access_token = xxxx
.htaccess
AddHandler cgi-script cgi
<Files ~ ".conf">
deny from all
</Files>
Da es sich um OAuth handelt, schreiben Sie einen solchen Prozess auf der Anwendungsseite. (Das Bild stammt aus Mashapes OAuth Bible)
Die Weiterleitung von Yammer wird im Format redirect.cgi? Code = xxxx zurückgegeben. Wenn die URL also keinen code =
enthält, werden die in der Abbildung gezeigten Verarbeitungen "Get Request Token" und "Direct User To Service Provider" ausgeführt. Wenn code = vorhanden ist, wird es geschrieben, um die Verarbeitung von
Exchange Request Token for Access Token` auszuführen.
redirect.cgi
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import yampy
import cgi
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('yammer.conf')
client_id = config.get('Yammer','client_id')
client_secret = config.get('Yammer','client_secret')
redirect_uri = config.get('Yammer','redirect_uri')
authenticator = yampy.Authenticator(client_id=client_id, client_secret=client_secret)
form = cgi.FieldStorage()
if form.has_key("code"):
#Code von Yammer erhalten(Request Token)Vom Zugang_Token generieren
code = form["code"].value
access_token = authenticator.fetch_access_token(code)
print "Content-Type: text/html"
print ""
print access_token
else:
#Generieren Sie eine Authentifizierungs-URL und leiten Sie zum Yammer-Authentifizierungsbildschirm weiter
auth_url = authenticator.authorization_url(redirect_uri=redirect_uri)
print "Location: "+auth_url
print ""
Wenn Sie diese Datei auf dem Server ablegen und auf "http: // xxxx.sakura.ne.jp / yammer / redirect.cgi" zugreifen, werden Sie zum Yammer-Anmeldebildschirm weitergeleitet. Wenn Sie sich auf diesem Bildschirm bei Yammer anmelden und die Genehmigungsschaltfläche drücken, wird access_token angezeigt.
Wenn Sie dieses access_token kopieren und in die yammer.conf schreiben, können Sie über post.cgi unten auf yammer posten. (Dieser Teil wurde nicht automatisiert ...)
post.cgi
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cgi
import yampy
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('yammer.conf')
access_token = config.get('Yammer','access_token')
form = cgi.FieldStorage()
if form.has_key("comment"):
comment = form["comment"].value
#Wenn der Kommentar eine Yammer-Zeichenfolge enthält, senden Sie diese an Yammer
if comment.find('yammer') > -1:
url = form["url"].value
title = form["title"].value
body = title + ' ' + url
yammer = yampy.Yammer(access_token=access_token)
yammer.messages.create(body)
print "Content-Type: text/html"
print ""
print body
Wenn Sie nun das Hatena-Lesezeichen mit yammer markieren, wird es an Yammer gesendet.