カテゴリー別アーカイブ: Python

ActiveCampaign AIP をPythonで操作 Ubuntu20.04

ActiveCampaignを外部連携するために、APIを使ってみた

$cat /etc/issue
Ubuntu 20.04.5 LTS
 
cd
# トップに戻って
python -V Python 3.8.10
#バージョンは 3.8.10

#作業エリアをactcmpとして
mkdir actcmp 
cd actcmp 

python -m venv env
#仮想環境を作り

source env/bin/activate

#ライブラリィーをインストール
  
pip install activecampaign-python

ファイルを作って
from activecampaign.client import Client
client = Client(URL, API_KEY)
response = client.contacts.list_all_contacts(email="johndoe@example.com")
sample.py
で格納
python sample.py
で、実行

やはり、Pythonは使いやすい

はじめ、PHPで行なおうとしたが
#https://github.com/ActiveCampaign/activecampaign-api-php
Composer
で、手間取ってしまい、pythonで行うことにした

Autometionで全体のながれを作り
外部ベージでイベントで、Tagを変更してコントロールしようと
考えている

PHP+Zaper+ActiveCampaign
では、連携はできたのであるが
せかっくなので、Zaperなしのシステムにしたいと思う

Ubuntu 20 に pycharmをインストール

すでに、ライセンスを所有している状態で
Ubuntu 20 に pycharmをインストールしてみた

JetBrains のページから
https://www.jetbrains.com/pycharm/

pycharm01

ダウンロードを選択

既にライセンスがあるのでプロのダウンロードを選択

pycharm02

pycharm-professional-2021.2.1.tar.gz
が、ダウンロードされる

cd
cd ダウンロード
ls pycharm-pro* 
pycharm-professional-2021.2.1.tar.gz

pycharm-professional-2021.2.1.tar.gz
を、確認

tar -zxvf pycharm-professional-2021.2.1.tar.gz

フォルダーをホームへ移動
(xxx)は、各環境に合わせてください

mv pycharm-2021.2.1 /home/xxx

cd /home/xxx/pycharm-2021.2.1/bin

./pycharm.sh

pycharm11

チェックを入れて「continue」を押下
pycharm04

「Don’t Send」を選択
pycharm05

そのまま「OK」
pycharm07

購入済のIDとPassを入力し「Activate」を押下
pycharm08

「Continue」を押下
pycharm09

インストールできたようである

プロジェクトを作って作業にはいれる

シュートカットのアイコンも作っておく

cd ~/.local/share/applications
touch jetbrains-pycharm.desktop
vi jetbrains-pycharm.desktop

以下をi 後に貼り付ける(shift+Ctr+v)

書き込み終了
ESC :wq [enter]

/home/xxxx/
は、各自に合わせ

[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm
Icon=/home/ubuntu/pycharm-2021.2.1/bin/pycharm.png
Exec="/home/ubuntu/pycharm-2021.2.1/bin/pycharm.sh" %f
Comment=Develop with pleasure!
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm

お気に入りに追加は以下の手順になります
pycharm10

エックスサーバでPythonによるWebサービスを行う


エックスサーバでPythonによるWebサービスを行う手順について説明します。
=======================
1,X-serverでサービスを取得する
2,brewをインストール
3,python3.8をインストール
4,Djangoをインストール
5,プロジェクトを作成
6,Webから接続
7,アプリを追加
8,AdminのCSSを有効にする
=======================

1,X-serverでサービスを取得する

https://www.xserver.ne.jp/

はじめにサーバIDを分かりやすい名前を決めて

xxxxxxxxをサーバIDに置き換えてください

chmod 600 xxxxxxxx.key 
ssh -l xxxxxxxx -i xxxxxxxx.key xxxxxxxx.xsrv.jp -p 10022

cat /etc/redhat-release
python -V
python3 -V

2,brewをインストール
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

echo 'eval $(/home/xxxxxxxx/.linuxbrew/bin/brew shellenv)' >>~/.profile
eval $(/home/xxxxxxxx/.linuxbrew/bin/brew shellenv)

source ~/.profile

brew install gcc
brew doctor

python -V
python3 -V

3,python3.8をインストール
brew install python3

python -V
python3 -V

python3 -m venv env
source env/bin/activate
python -V

4,Djangopyをインストール
pip install --upgrade pip
pip install django==1.11.17

python -m django --version

cd
pwd

5,プロジェクトを作成
django-admin startproject mysite

ls
cd mysite

python manage.py migrate
python manage.py createsuperuser

6,Webから接続
cd
cd xxxxxxxx.xsrv.jp
cd public_html

vi test.html

<html>
<hr>
good!!
<hr>
</html>

http://xxxxxxxx.xsrv.jp/test.html

mkdir top
cd top

ls /home/xxxxxxxx/.linuxbrew/bin/python*

※インストールされたpythonのバージョンにあわせ
 以下の必要な場合はCGI内のパスを変更してください

vi mysite.cgi
i

------------
#!/home/xxxxxxxx/.linuxbrew/bin/python3.8

# encoding: utf-8

import os, sys

sys.path.append("/home/xxxxxxxx/env/lib/python3.8/site-packages")
sys.path.append("/home/xxxxxxxx/env/lib/python3.8/site-packages/django")

sys.path.append("/home/xxxxxxxx/mysite/")

def run_with_cgi(application):

    environ                      = dict(os.environ.items())
    environ['wsgi.input']        = sys.stdin.buffer
    environ['wsgi.errors']       = sys.stderr.buffer
    environ['wsgi.version']      = (1,0)
    environ['wsgi.multithread']  = False
    environ['wsgi.multiprocess'] = True
    environ['wsgi.run_once']     = True
    environ['PATH_INFO']         = environ.get('PATH_INFO',"/") # 追加


    if environ.get('HTTPS','off') in ('on','1'):
        environ['wsgi.url_scheme'] = 'https'
    else:
        environ['wsgi.url_scheme'] = 'http'

    headers_set  = []
    headers_sent = []

    def write(data):
        if not headers_set:
             raise AssertionError("write() before start_response()")

        elif not headers_sent:
             # Before the first output, send the stored headers
             status, response_headers = headers_sent[:] = headers_set
             sys.stdout.buffer.write(('Status: %s\r\n' % status).encode("ascii"))
             for header in response_headers:
                 sys.stdout.buffer.write(('%s: %s\r\n' % header).encode("ascii"))
             sys.stdout.buffer.write(('\r\n').encode("ascii"))

        sys.stdout.buffer.write(data)
        sys.stdout.buffer.flush()

    def start_response(status,response_headers,exc_info=None):
        if exc_info:
            try:
                if headers_sent:
                    # Re-raise original exception if headers sent
                    raise exc_info[0](exc_info[1]).with_traceback(exc_info[2])
            finally:
                exc_info = None     # avoid dangling circular ref
        elif headers_set:
            raise AssertionError("Headers already set!")

        headers_set[:] = [status,response_headers]
        return write

    result = application(environ, start_response)
    try:
        for data in result:
            if data:    # don't send headers until body appears
                write(data)
        if not headers_sent:
            write('')   # send headers now if body was empty
    finally:
        if hasattr(result,'close'):
            result.close()

# Change to the name of your settings module
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from django.core.wsgi import get_wsgi_application
run_with_cgi(get_wsgi_application())
-------

vi .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.cgi/$1 [QSA,L]

chmod 755 mysite.cgi
chmod 604 .htaccess

http://xxxxxxxx.xsrv.jp/top

cd
cd mysite
cd mysite

vi settings.py

ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']

http://xxxxxxxx.xsrv.jp/top

http://xxxxxxxx.xsrv.jp/top/admin

7,アプリを追加

cd ../
python manage.py startapp polls

cd polls

vi views.py
from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

---
vi urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

cd ../
cd mysite
vi urls.py

from django.conf.urls import include

    url(r'^polls/', include('polls.urls', namespace='polls')),

vi settings.py

INSTALLED_APPS = [

    'polls',
]

8,AdminのCSSを有効にする
vi settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/

#STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = './static/'

vi urls.py
----
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^admin/([a-xA-Z0-9_]*/)*static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),
]

cd ../
python manage.py collectstatic

vi settings.py

LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

関連ページ

//https://kazusa-pg.com/xserver-django/
//https://note.com/coeeff/n/neab8acfde97e
//https://jurasite.com/post-92
//https://liberal-learner.work/it/diet-record/
//https://www.xserver.ne.jp/manual/man_server_ssh.php

Ubuntu 16 にPycharmをインストール

Ubuntu 16 にPycharmをインストールしてみました。

pycharmのHPからダウンロード
//https://www.jetbrains.com/ja-jp/pycharm/download/download-thanks.html?platform=linux

pycharm-professional-2020.2.1.tar.gz

cd
cd ダウンロード
ls 

pycharm-professional-2020.2.1.tar.gz
を確認

pycharm-professionalをインストールします。
ファイルを解凍

tar -zxvf pycharm-professional-2020.2.1.tar.gz

フォルダーをホームへ移動
(xxx)は、各環境に合わせてください

mv pycharm-2020.2.1 /home/xxx

cd /home/xxx/pycharm-2020.2.1/bin

./pycharm.sh

開始画面になります。

無事、インストールできました。

参考
//https://qiita.com/m0p1nt/items/3c4cb0796f09fce0b591