Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PythonとBottleを使用してSalesforceにアクセスするサンプルを作成してみた

More than 3 years have passed since last update.

ここ最近Pythonを個人的に学習し始めたこともあって、PythonからSalesforceを使用できないかと思って試してみた。

使用するもの

今回のサンプルを作成するのに使用したのは以下

  • Python 3.5
  • virtualenv
  • Bottle
  • simple-salesforce

ちょっとだけ補足すると

Bottle

PythonでWebアプリケーションを作成するためのフレームワーク。PythonでWebアプリケーションを作成するためのフレームワークには他にDjangoなどがある。
Bottleはその中でも軽量なフレームワークで、必要最低限のものが一通り揃っているとのことなので選択。

virtualenv

Pythonの仮想環境を作成するライブラリ。イメージとしてはVirtualboxとVagrantで仮想環境を作成するのに近いかも。

simple-salesforce

PythonからSalesforceを操作するためのモジュール。公式ドキュメントを見た感じだとREST APIを叩いているみたい。

実装

実装したものは最低限しかないけれど

index.tpl
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Bottle Indexテンプレート</title>
  </head>
  <body>
    <h1>{{msg}}</h1>
    <h2></h2>
    <form action="" method="post">
      <input type="text" name="username" placeholder="Username" />
      <input type="password" name="password" placeholder="Password" />
      <input type="password" name="security_token" placeholder="SecurityToken" />
      <input type="submit" value="ログイン" />
    </form>
  </body>
</html>
index.py
from bottle import route, run, template, request
from simple_salesforce import Salesforce

@route('/')
def index(msg='This page is home page.'):
    return template('index', msg=msg)

@route('/', method=["POST"])
def login_salesforce():
    uname = request.POST.getunicode("username")
    upw   = request.POST.getunicode("password")
    token = request.POST.getunicode("security_token")
    try:
        sf = Salesforce(username=uname, password=upw, security_token=token)
        return template("login_success")
    except Exception as e:
        return template("login_error")
    finally:
        print("ログイン処理終了")

run(host='localhost', port=8080, debug=True, reloader=True)

本当に最低限だけです。
今後適宜追加予定なので。

現段階でのソースはGithubのBottleSalesforceEnvにあがっています。

silverskyvicto
Salesforce Platform や Atlassian Product を使用しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away