{"id":3002,"date":"2021-11-30T00:03:56","date_gmt":"2021-11-29T15:03:56","guid":{"rendered":"http:\/\/www.frontier-line.org\/lognote\/?p=3002"},"modified":"2021-11-30T00:27:03","modified_gmt":"2021-11-29T15:27:03","slug":"twitter-bot%e3%81%ae%e5%be%a9%e6%b4%bb%e3%82%92%e8%a9%a6%e3%81%bf%e3%81%a6%e3%81%84%e3%82%8d%e3%81%84%e3%82%8d%e3%81%a8%e5%b5%8c%e3%81%be%e3%82%8b","status":"publish","type":"post","link":"https:\/\/www.frontier-line.org\/lognote\/?p=3002","title":{"rendered":"twitter bot\u306e\u5fa9\u6d3b\u3092\u8a66\u307f\u3066\u3044\u308d\u3044\u308d\u3068\u5d4c\u307e\u308b"},"content":{"rendered":"<p>\u3053\u308c\u307e\u3067\u305a\u3063\u3068\u3001\u30ac\u30c3\u30c1\u30e3\u30de\u30f3\u306e\u5357\u90e8\u535a\u58eb\u306e\u53f0\u8a5e\u3092\u545f\u304fbot\u3092\u904b\u7528\u3057\u3066\u304d\u3066\u3001\u305d\u308d\u305d\u308d\u5b87\u9580\u535a\u58eb\u306e\u3082\u4f5c\u3089\u306a\u3044\u3068\u306a\u3001\u3068\u601d\u3063\u3066\u3044\u305f\u3089\u3001API\u306e\u5909\u66f4\u304c\u3042\u3063\u3066\u3001\u3053\u308c\u307e\u3067\u304a\u4e16\u8a71\u306b\u306a\u3063\u305fEasyBotter\u304c\u52d5\u304b\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u3002\u3042\u305f\u3089\u3057\u3044TwitterOAuth\u3092\u5165\u308c\u3066\u4fee\u6b63\u3057\u3088\u3046\u3068\u3057\u305f\u306e\u3060\u304c\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5c11\u3057\u4e0a\u3052\u305fPHP\u3067Composer\u3092\u52d5\u304b\u305d\u3046\u3068\u3059\u308b\u3068\u3001\u6700\u65b0\u7248\u3092\u5165\u308c\u3066\u3042\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305aOpenSSL\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8a8d\u8b58\u3057\u3066\u304f\u308c\u305a\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u5c0e\u5165\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u72b6\u614b\u306b\u3002\u3060\u3063\u305f\u3089PHP\u306b\u3053\u3060\u308f\u3089\u305aPython\u3067\u3082\u3044\u3044\u3060\u308d\u3001\u3068\u601d\u3063\u305f\u306e\u3067\u3001Python\u3067bot\u306e\u5fa9\u6d3b\u3092\u56f3\u3063\u305f\u3002\u305f\u3060\u3001Python\u306fver.2\u7cfb\u7d71\u304cPlone\u306e\u305f\u3081\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u3066\u3001\u6df7\u3058\u308b\u3068\u5384\u4ecb\u306a\u306e\u3067\u3001\u5225\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5165\u308c\u308b\u3053\u3068\u306b\u3057\u305f\u3002\u3053\u306e\u305f\u3081\u3001\u95a2\u9023\u30c4\u30fc\u30eb\u3082\u542b\u3081\u3066\u30bd\u30fc\u30b9\u304b\u3089\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066\u3044\u305f\u306e\u3060\u304c\u3001\u3053\u308c\u304c\u7d50\u69cb\u5d4c\u307e\u3063\u305f\u3002<\/p>\n<p><!--more--><\/p>\n<h2>OpenSSL\u306e\u6700\u65b0\u7248\u3092\u5165\u308c\u308b<\/h2>\n<p>\u307e\u305a\uff0cOpenSSL\u306e\u6700\u65b0\u7248 openssl-1.1.1l.tar.gz \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\/usr\/local\/src\u306b\u5165\u308c\u308b\u3002<br \/>\ntar zxvf openssl-1.1.1l.tar.gz<br \/>\ncd openssl-1.1.1l<br \/>\n\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306b\u5099\u3048\u3066\uff0c\/usr\/local\/openssl1.1.1\u306e\u4e0b\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<br \/>\n.\/config &#8211;prefix=\/usr\/local\/openssl1.1.1 &#8211;openssldir=\/usr\/local\/openssl1.1.1 -rpath=\/usr\/local\/openssl1.1.1<br \/>\n\u3059\u3050\u306b\u7d42\u4e86\u3057\u3066Makefile\u304c\u3067\u304d\u308b\u306e\u3067\uff0c<br \/>\nmake<br \/>\nmake test<\/p>\n<p>..\/test\/recipes\/05-test_md2.t &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;. skipped: md2 is not supported by this OpenSSL build<br \/>\n..\/test\/recipes\/05-test_rc5.t &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;. skipped: rc5 is not supported by this OpenSSL build<br \/>\n..\/test\/recipes\/30-test_afalg.t &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. skipped: test_afalg not supported for this build<br \/>\n..\/test\/recipes\/90-test_gost.t &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; skipped: No test GOST engine found<br \/>\n..\/test\/recipes\/90-test_overhead.t &#8230;&#8230;&#8230;&#8230;&#8230;.. skipped: Only supported in no-shared builds<br \/>\n..\/test\/recipes\/95-test_external_boringssl.t &#8230;&#8230;. skipped: No external tests in this configuration<br \/>\n..\/test\/recipes\/95-test_external_krb5.t &#8230;&#8230;&#8230;&#8230; skipped: No external tests in this configuration<br \/>\n..\/test\/recipes\/95-test_external_pyca.t &#8230;&#8230;&#8230;&#8230; skipped: No external tests in this configuration<\/p>\n<p>\u304c\u51fa\u308b\u304c\uff0c\u305d\u306e\u4ed6\u306f\u5168\u3066ok\u3067\uff0c<br \/>\nResult: PASS<br \/>\n\u3068\u306a\u3063\u305f\u306e\u3067\uff0c<br \/>\nmake install<\/p>\n<p>\/usr\/local\/openssl1.1.1\u306e\u4e0b\u306b\uff0cbin, include, lib\u306a\u3069\u304c\u3067\u304d\u3066\u3044\u308b\u3002<br \/>\nlib\u306e\u4e0b\u306f\uff0c<br \/>\nengines-1.1\t\tlibcrypto.so\t\tlibssl.a\t\tlibssl.so.1.1<br \/>\nlibcrypto.a\t\tlibcrypto.so.1.1\tlibssl.so\t\tpkgconfig<br \/>\n\u304c\u3042\u308b\u3002<\/p>\n<p>\u52d5\u4f5c\u78ba\u8a8d\u3068\u3057\u3066\uff0c<br \/>\n\/usr\/local\/openssl1.1.1\/bin\/openssl version -a<br \/>\n\u3092\u5b9f\u884c\u3059\u308b\u3068\uff0clibssl.so.1.1\u304c\u6b63\u5e38\u306b\u4f5c\u3089\u308c\u3066\u3044\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a\uff0c<br \/>\nShared object &#8220;libssl.so.1.1&#8221; not found, required by &#8220;openssl&#8221;<br \/>\n\u3068\u51fa\u308b\u3002<br \/>\nprintenv\u3059\u308b\u3068\uff0cLD_LIBRARY_PATH\u304c\u4f55\u3082\u51fa\u306a\u3044\u306e\u3067\uff0c\u8a66\u3057\u306b<br \/>\nsetenv LD_LIBRARY_PATH \/usr\/local\/openssl1.1.1\/lib<br \/>\n\u3057\u3066\u304b\u3089\u518d\u5ea6\u5b9f\u884c\u3059\u308b\u3068\uff0c<\/p>\n<p>OpenSSL 1.1.1l  24 Aug 2021<br \/>\nbuilt on: Mon Nov 29 06:03:00 2021 UTC<br \/>\nplatform: BSD-x86_64<br \/>\noptions:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)<br \/> <br \/>\ncompiler: cc -fPIC -pthread -Wa,&#8211;noexecstack -Wall -O3 -rpath=\/usr\/local\/openssl1.1.1 -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -D_THREAD_SAFE -D_REENTRANT -DNDEBUG<br \/>\nOPENSSLDIR: &#8220;\/usr\/local\/openssl1.1.1&#8221;<br \/>\nENGINESDIR: &#8220;\/usr\/local\/openssl1.1.1\/lib\/engines-1.1&#8221;<br \/>\nSeeding source: os-specific<\/p>\n<p>\u306e\u3088\u3046\u306b\u8868\u793a\u3055\u308c\uff0c\u6b63\u5e38\u52d5\u4f5c\u3059\u308b\u3002\u3069\u3046\u3082\uff0c.\/configure\u3067\u6307\u5b9a\u3057\u305f&#8211;prefix\u304c\uff0c\u30e9\u30f3\u30bf\u30a4\u30e0\u3067\u306f\u53c2\u7167\u3055\u308c\u3066\u3044\u306a\u3044\u3063\u307d\u3044\u3002<\/p>\n<h2>curl\u3092\u5165\u308c\u308b<\/h2>\n<p>curl-7.80.0.tar.gz\u3092\/usr\/local\/src\u306b\u7f6e\u304f\u3002<\/p>\n<p>tar zxvf curl-7.80.0.tar.gz<br \/>\ncd curl-7.80.0<br \/>\ncurl\u3082\uff0c\u4ed6\u3067\u4f7f\u3063\u3066\u3044\u308b\u3082\u306e\u3092\u3076\u3064\u304b\u3089\u306a\u3044\u3088\u3046\u306b\uff0c\/usr\/local\/curl7.80.0\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/p>\n<p>.\/configure &#8211;prefix=\/usr\/local\/curl7.80.0 &#8211;with-ssl=\/usr\/local\/openssl1.1.1\/ &#8211;enable-libcurl-option<\/p>\n<p>OpenSSL\u307e\u308f\u308a\u306f\uff0c<br \/>\nconfigure: PKG_CONFIG_LIBDIR will be set to &#8220;\/usr\/local\/openssl1.1.1\/\/lib\/pkgconfig&#8221;<br \/>\nchecking for pkg-config&#8230; (cached) \/usr\/local\/bin\/pkg-config<br \/>\nchecking for openssl options with pkg-config&#8230; found<br \/>\nconfigure: pkg-config: SSL_LIBS: &#8220;-lssl -lcrypto  &#8220;<br \/>\nconfigure: pkg-config: SSL_LDFLAGS: &#8220;-L\/usr\/local\/openssl1.1.1\/lib  &#8220;<br \/>\nconfigure: pkg-config: SSL_CPPFLAGS: &#8220;-I\/usr\/local\/openssl1.1.1\/include  &#8220;<br \/>\nchecking for HMAC_Update in -lcrypto&#8230; yes<br \/>\nchecking for SSL_connect in -lssl&#8230; yes<br \/>\nchecking for openssl\/x509.h&#8230; yes<br \/>\nchecking for openssl\/rsa.h&#8230; yes<br \/>\nchecking for openssl\/crypto.h&#8230; yes<br \/>\nchecking for openssl\/pem.h&#8230; yes<br \/>\nchecking for openssl\/ssl.h&#8230; yes<br \/>\nchecking for openssl\/err.h&#8230; yes<br \/>\nchecking for RAND_egd&#8230; no<br \/>\nchecking for SSLv2_client_method&#8230; no<br \/>\nchecking for OpenSSL_version&#8230; yes<br \/>\nchecking for BoringSSL&#8230; no<br \/>\nchecking for libressl&#8230; no<br \/>\nchecking for OpenSSL >= v3&#8230; no<br \/>\nconfigure: Added \/usr\/local\/openssl1.1.1\/lib to CURL_LIBRARY_PATH<br \/>\nchecking for OpenSSL headers version&#8230; 1.1.1 &#8211; 0x111<br \/>\nchecking for OpenSSL library version&#8230; 1.1.1<br \/>\nchecking for OpenSSL headers and library versions matching&#8230; yes<\/p>\n<p>\u3068\u306a\u308a\uff0c<\/p>\n<p>   CPPFLAGS:        -isystem \/usr\/local\/openssl1.1.1\/include<br \/>\n   LDFLAGS:         -L\/usr\/local\/openssl1.1.1\/lib<br \/>\n   LIBS:            -lssl -lcrypto -lssl -lcrypto -lz<\/p>\n<p>  curl version:     7.80.0<br \/>\n  SSL:              enabled (OpenSSL)<\/p>\n<p>\u3068\u306a\u3063\u3066\uff0c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305fOpenSSL\u306f\u304d\u3061\u3093\u3068\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n<p>make<br \/>\nmake test<br \/>\nmake install<\/p>\n<p>\u52d5\u4f5c\u30c1\u30a7\u30c3\u30af\u306f<br \/>\n\/usr\/local\/curl7.80.0\/bin\/curl -V<\/p>\n<p>curl 7.80.0 (x86_64-unknown-freebsd9.1) libcurl\/7.80.0 OpenSSL\/1.1.1l zlib\/1.2.7<br \/>\nRelease-Date: 2021-11-10<br \/>\nProtocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp <br \/>\nFeatures: alt-svc AsynchDNS HSTS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets<\/p>\n<p>\u3068\u8868\u793a\u3055\u308c\u3066\uff0c\u6b63\u5e38\u52d5\u4f5c\u304c\u78ba\u8a8d\u3067\u304d\u308b\u3002\u306a\u304a\uff0c<br \/>\nunsetenv LD_LIBRARY_PATH<br \/>\n\u3057\u3066\u304b\u3089\u5b9f\u884c\u3059\u308b\u3068\uff0c<br \/>\nShared object &#8220;libssl.so.1.1&#8221; not found, required by &#8220;curl&#8221;<br \/>\n\u3068\u306a\u308a\uff0c\u3084\u306f\u308a\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u4e0e\u3048\u305flibssl\u306e\u3042\u308a\u304b\u304c\u30e9\u30f3\u30bf\u30a4\u30e0\u306b\u53cd\u6620\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/p>\n<h2>Python\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\n\u6700\u65b0\u7248\u3000Python-3.10.0.tgz\u3000\u3092\/usr\/local\/src\u306b\u7f6e\u304f\u3002<\/p>\n<p>tar zxvf Python-3.10.0.tgz<br \/>\ncd Python-3.10.0<\/p>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\u3092\/usr\/local\/python3.10.0\/\u306b\u3057\uff0cOpenSSL\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\/usr\/local\/\/openssl-1.1.1\u3092\u6307\u5b9a\u3057\u3066.\/configure\u3059\u308b\u3002<\/p>\n<p>.\/configure &#8211;prefix \/usr\/local\/python3.10.0\/ &#8211;with-pydebug  &#8211;with-openssl=\/usr\/local\/\/openssl1.1.1 &#8211;with-ssl<\/p>\n<p>checking for openssl\/ssl.h in \/usr\/local\/\/openssl1.1.1&#8230; yes<br \/>\nchecking whether compiling and linking against OpenSSL works&#8230; yes<\/p>\n<p>\u304c\u51fa\u3066\uff0cOpenSSL\u306f\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u3002\u306a\u305c\u30d1\u30b9\u306e\u4e2d\u306b\/\/\u304c\u51fa\u3066\u304f\u308b\u306e\u304b\u306f\u3088\u304f\u308f\u304b\u3089\u306a\u3044\u3002<\/p>\n<p>make<\/p>\n<p>\u3067\u51fa\u3066\u304f\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u6700\u5f8c\u306e\u65b9\u3092\u898b\u308b\u3068\uff0c<\/p>\n<p>Python build finished successfully!<br \/>\nThe necessary bits to build these optional modules were not found:<br \/>\n_gdbm                 _sqlite3              _tkinter           <br \/>\nspwd                                                           <br \/>\nTo find the necessary bits, look in setup.py in detect_modules() for the module&#8217;s name.<\/p>\n<p>\nThe following modules found by detect_modules() in setup.py, have been<br \/>\nbuilt by the Makefile instead, as configured by the Setup files:<br \/>\n_abc                  pwd                   time               <\/p>\n<p>\nFailed to build these modules:<br \/>\n_ctypes       <\/p>\n<p>\u3067\uff0c\u5927\u4e08\u592b\u305d\u3046\u3002<\/p>\n<p>make install<\/p>\n<p>ls \/usr\/local\/python3.10.0\/bin\/<br \/>\n\u3067\uff0cpip3\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3002<\/p>\n<p>\/usr\/local\/python3.10.0\/bin\/pip3 list<\/p>\n<p>\u4ed6\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u3068\u3082\u306b<\/p>\n<p>Package    Version<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;-<br \/>\npip        21.2.3<br \/>\nsetuptools 57.4.0<\/p>\n<p>\u304c\u8868\u793a\u3055\u308c\u305f\u3002<br \/>\nunsetenv LD_LIBRARY_PATH<br \/>\n\u3057\u3066\u304b\u3089\u5b9f\u884c\u3057\u3066\u3082\u540c\u69d8\u306e\u30ea\u30b9\u30c8\u304c\u51fa\u305f\u306e\u3067\uff0cpython\u306e\u5b9f\u884c\u3067\u306f\uff0cLD_LIBRARY_PATH\u306e\u8a2d\u5b9a\u304c\u7121\u304f\u3066\u3082\uff0c\u30e9\u30f3\u30bf\u30a4\u30e0\u306bOpenSSL\u3092\u898b\u3066\u304f\u308c\u3066\u3044\u308b\u3089\u3057\u3044\u3002<\/p>\n<h2>tweepy\u3092\u5165\u308c\u308b<\/h2>\n<p>twitterAPI\u95a2\u9023\u306e\u30c4\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\u4eca\u56de\u306ftweepy\u3092\u4f7f\u3046\u3053\u3068\u306b\u3059\u308b\u3002<\/p>\n<p>\/usr\/local\/python3.10.0\/bin\/pip3 install tweepy<\/p>\n<p>\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/pip\/_vendor\/packaging\/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release<br \/>\n  warnings.warn(<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/pip\/_internal\/locations\/_distutils.py:9: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives<br \/>\n  from distutils.cmd import Command as DistutilsCommand<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/distutils\/command\/install.py:13: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead<br \/>\n  from distutils.sysconfig import get_config_vars<br \/>\nWARNING: pip is configured with locations that require TLS\/SSL, however the ssl module in Python is not available.<br \/>\nWARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by &#8216;SSLError(&#8220;Can&#8217;t connect to HTTPS URL because the SSL module is not available.&#8221;)&#8217;: \/simple\/tweepy\/<br \/>\nWARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by &#8216;SSLError(&#8220;Can&#8217;t connect to HTTPS URL because the SSL module is not available.&#8221;)&#8217;: \/simple\/tweepy\/<br \/>\nWARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by &#8216;SSLError(&#8220;Can&#8217;t connect to HTTPS URL because the SSL module is not available.&#8221;)&#8217;: \/simple\/tweepy\/<br \/>\nWARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by &#8216;SSLError(&#8220;Can&#8217;t connect to HTTPS URL because the SSL module is not available.&#8221;)&#8217;: \/simple\/tweepy\/<br \/>\nWARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by &#8216;SSLError(&#8220;Can&#8217;t connect to HTTPS URL because the SSL module is not available.&#8221;)&#8217;: \/simple\/tweepy\/<br \/>\nCould not fetch URL https:\/\/pypi.org\/simple\/tweepy\/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=&#8217;pypi.org&#8217;, port=443): Max retries exceeded with url: \/simple\/tweepy\/ (Caused by SSLError(&#8220;Can&#8217;t connect to HTTPS URL because the SSL module is not available.&#8221;)) &#8211; skipping<br \/>\nERROR: Could not find a version that satisfies the requirement tweepy (from versions: none)<br \/>\nERROR: No matching distribution found for tweepy<br \/>\nWARNING: You are using pip version 21.2.3; however, version 21.3.1 is available.<br \/>\nYou should consider upgrading via the &#8216;\/usr\/local\/python3.10.0\/bin\/python3.10 -m pip install &#8211;upgrade pip&#8217; command.<\/p>\n<p>\u3067\uff0cOpenSSL\u307e\u308f\u308a\u3067\u30b3\u30b1\u307e\u304f\u3063\u3066\u304f\u308c\u308b\u3002<br \/>\n\u3053\u3053\u307e\u3067\u3069\u3046\u3063\u3066\u3053\u3068\u306a\u304fOpenSSL\u304c\u4f7f\u3048\u308b\u3088\u3046\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u3057\u3066\u304a\u304d\u306a\u304c\u3089\uff0c\u3044\u3056\u5916\u90e8\u306b\u63a5\u7d9a\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30b3\u30b1\u308b\u306e\u3067\u306f\uff0c\u3069\u3053\u307e\u3067\u9061\u3063\u3066\u4f55\u3092\u3069\u3046\u76f4\u305b\u3070\u826f\u3044\u304b\u3059\u3050\u306b\u306f\u308f\u304b\u3089\u306a\u3044\u3002\u3053\u308c\u3067\u5927\u4f53\u4e38\u4e00\u65e5\u60a9\u3080\u7fbd\u76ee\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>pip3\u3092\u30ed\u30fc\u30ab\u30eb\u3067\u52d5\u304b\u3059\u6642\u306b\u898b\u3066\u3044\u308b\u5834\u6240\u3068\uff0c\u5b9f\u969b\u306bhttps\u63a5\u7d9a\u3059\u308b\u5834\u5408\u3068\u3067\u306f\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3068\u3053\u308d\u304c\u9055\u3046\u3089\u3057\u3044\u3002python\u3067https\u3092\u4f7f\u304a\u3046\u3068\u3057\u305f\u3068\u304d\u306bLD_LIBRARY_PATH\u306e\u8a2d\u5b9a\u304c\u7121\u3044\u3068\u30b3\u30b1\u305d\u3046\u306a\u611f\u3058\u3060\u304c\uff0ccron\u3067\u81ea\u52d5\u5b9f\u884c\u3059\u308b\u4e88\u5b9a\u306a\u306e\u3067\uff0c\u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\u306e\u6709\u7121\u306b\u4f9d\u5b58\u3059\u308b\u306e\u3067\u306f\u3061\u3087\u3063\u3068\u4e0d\u5b89\u3002<\/p>\n<p>\u305d\u3053\u3067\uff0cPython\u306e\u30bd\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306eModules\/Setup\u3092\u76f4\u63a5\u7de8\u96c6\u3059\u308b\u3002\u5177\u4f53\u7684\u306b\u306f\uff0cOpenSSL\u3078\u306e\u30d1\u30b9\u6307\u5b9a\u3068\uff0c\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30ea\u30f3\u30af\u306e\u5834\u5408\u306e\u6307\u5b9a\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u5916\u3057\u3066OpenSSL\u3092static link\u3055\u305b\u308b\u8a2d\u5b9a\u3067\u518d\u30d3\u30eb\u30c9\u3059\u308b\u3002<\/p>\n<p>\n OPENSSL=\/usr\/local\/openssl1.1.1<br \/>\n# _ssl _ssl.c \\                                         <br \/>\n#     -I$(OPENSSL)\/include -L$(OPENSSL)\/lib \\<br \/>\n#     -lssl -lcrypto                                                   <br \/>\n#_hashlib _hashopenssl.c \\                                     <br \/> <br \/>\n#     -I$(OPENSSL)\/include -L$(OPENSSL)\/lib \\      <br \/>\n#     -lcrypto                                                         <\/p>\n<p># To statically link OpenSSL: <br \/>\n _ssl _ssl.c \\<br \/>\n     -I$(OPENSSL)\/include -L$(OPENSSL)\/lib \\<br \/>\n     -l:libssl.a -Wl,&#8211;exclude-libs,libssl.a \\<br \/>\n     -l:libcrypto.a -Wl,&#8211;exclude-libs,libcrypto.a<br \/>\n_hashlib _hashopenssl.c \\<br \/>\n     -I$(OPENSSL)\/include -L$(OPENSSL)\/lib \\<br \/>\n     -l:libcrypto.a -Wl,&#8211;exclude-libs,libcrypto.a<\/p>\n<p>\u3053\u306e\u5909\u66f4\u3092\u3057\u305f\u4e0a\u3067\uff0c<br \/>\ncd ..<br \/>\n.\/configure &#8211;prefix \/usr\/local\/python3.10.0\/ &#8211;with-pydebug  &#8211;with-openssl=\/usr\/local\/\/openssl1.1.1 &#8211;with-ssl<\/p>\n<p>checking for openssl\/ssl.h in \/usr\/local\/\/openssl1.1.1&#8230; yes<br \/>\nchecking whether compiling and linking against OpenSSL works&#8230; yes<\/p>\n<p>make clean<br \/>\nmake<\/p>\n<p>\u7d42\u308f\u308a\u306e\u65b9\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u306b<\/p>\n<p>Python build finished successfully!<br \/>\nThe necessary bits to build these optional modules were not found:<br \/>\n_gdbm                 _sqlite3              _tkinter           <br \/>\nspwd                                                         <br \/> <br \/>\nTo find the necessary bits, look in setup.py in detect_modules() for the module&#8217;s name.<\/p>\n<p>\nThe following modules found by detect_modules() in setup.py, have been<br \/>\nbuilt by the Makefile instead, as configured by the Setup files:<br \/>\n_abc                  _hashlib              _ssl               <br \/>\npwd                   time                                     <\/p>\n<p>\nFailed to build these modules:<br \/>\n_ctypes                                                        <\/p>\n<p>\u3068\u306a\u308a\uff0c\u4eca\u5ea6\u306fssl\u304c\u5165\u3063\u305f\u307d\u3044\u3002\u3068\u3044\u3046\u3053\u3068\u3067\uff0c<\/p>\n<p>make install<\/p>\n<p>\/usr\/local\/python3.10.0\/bin\/pip3 list\u3000\u306e\u7d50\u679c\u306f\u5148\u307b\u3069\u3068\u540c\u3058\u3002<\/p>\n<p>\/usr\/local\/python3.10.0\/bin\/pip3 install tweepy<\/p>\n<p>\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/pip\/_vendor\/packaging\/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release<br \/>\n  warnings.warn(<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/pip\/_internal\/locations\/_distutils.py:9: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives<br \/>\n  from distutils.cmd import Command as DistutilsCommand<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/distutils\/command\/install.py:13: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead<br \/>\n  from distutils.sysconfig import get_config_vars<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/pip\/_vendor\/packaging\/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release<br \/>\n  warnings.warn(<br \/>\nCollecting tweepy<br \/>\n  Downloading tweepy-4.4.0-py2.py3-none-any.whl (65 kB)<br \/>\n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 65 kB 1.1 MB\/s<br \/> <br \/>\nCollecting requests-oauthlib<2,>=1.0.0<br \/>\n  Downloading requests_oauthlib-1.3.0-py2.py3-none-any.whl (23 kB)<br \/>\nCollecting requests<3,>=2.11.1<br \/>\n  Downloading requests-2.26.0-py2.py3-none-any.whl (62 kB)<br \/>\n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 62 kB 843 kB\/s<br \/> <br \/>\nCollecting idna<4,>=2.5<br \/>\n  Downloading idna-3.3-py3-none-any.whl (61 kB)<br \/>\n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 61 kB 5.2 MB\/s<br \/> <br \/>\nCollecting urllib3<1.27,>=1.21.1<br \/>\n  Downloading urllib3-1.26.7-py2.py3-none-any.whl (138 kB)<br \/>\n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 138 kB 4.5 MB\/s<br \/> <br \/>\nCollecting certifi>=2017.4.17<br \/>\n  Downloading certifi-2021.10.8-py2.py3-none-any.whl (149 kB)<br \/>\n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 149 kB 4.8 MB\/s<br \/> <br \/>\nCollecting charset-normalizer~=2.0.0<br \/>\n  Downloading charset_normalizer-2.0.8-py3-none-any.whl (39 kB)<br \/>\nCollecting oauthlib>=3.0.0<br \/>\n  Downloading oauthlib-3.1.1-py2.py3-none-any.whl (146 kB)<br \/>\n     |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 146 kB 5.1 MB\/s<br \/> <br \/>\nInstalling collected packages: urllib3, idna, charset-normalizer, certifi, requests, oauthlib, requests-oauthlib, tweepy<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/pip\/_vendor\/packaging\/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release<br \/>\n  warnings.warn(<br \/>\nSuccessfully installed certifi-2021.10.8 charset-normalizer-2.0.8 idna-3.3 oauthlib-3.1.1 requests-2.26.0 requests-oauthlib-1.3.0 tweepy-4.4.0 urllib3-1.26.7<br \/>\nWARNING: Running pip as the &#8216;root&#8217; user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https:\/\/pip.pypa.io\/warnings\/venv<br \/>\nWARNING: You are using pip version 21.2.3; however, version 21.3.1 is available.<br \/>\nYou should consider upgrading via the &#8216;\/usr\/local\/python3.10.0\/bin\/python3.10 -m pip install &#8211;upgrade pip&#8217; command.<\/p>\n<p>\n\u3068\u306a\u3063\u3066\uff0croot\u306e\u307e\u307e\u4f5c\u696d\u3057\u3066\u6012\u3089\u308c\u305f\u4ee5\u5916\u306f\uff0c\u4f9d\u5b58\u95a2\u4fc2\u306b\u3042\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5168\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u305f\u3002\/usr\/local\/python3.10.0\/bin\/pip3 list\u3000\u3092\u5b9f\u884c\u3059\u308b\u3068\uff0c<\/p>\n<p>Package            Version<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;<br \/>\ncertifi            2021.10.8<br \/>\ncharset-normalizer 2.0.8<br \/>\nidna               3.3<br \/>\noauthlib           3.1.1<br \/>\npip                21.2.3<br \/>\nrequests           2.26.0<br \/>\nrequests-oauthlib  1.3.0<br \/>\nsetuptools         57.4.0<br \/>\ntweepy             4.4.0<br \/>\nurllib3            1.26.7<\/p>\n<p>\u306e\u3088\u3046\u306b\uff0c\u4f9d\u5b58\u95a2\u4fc2\u306e\u3042\u308b\u3082\u306e\u304c\u5168\u90e8\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\u306f<br \/>\n\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/<br \/>\n\u3067\uff0c\u3053\u3053\u3092 ls\u3000\u3067\u898b\u308b\u3068\uff0c\u4eca\u3044\u308c\u305ftweepy\u306a\u3069\u304c\u5165\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<h2>bot\u306e\u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n<p>\u6b21\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3057\uff0c755\u3067\u4fdd\u5b58\u3059\u308b\u3002<br \/>\n\u3064\u3076\u3084\u304d\u305f\u3044\u30c7\u30fc\u30bf\u306f\u6539\u884c\u3067\u533a\u5207\u3063\u305f\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3067\uff0c\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u540c\u3058\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u7f6e\u304f\uff08\u7f6e\u304b\u306a\u304f\u3066\u3082\u5b9f\u884c\u306f\u3067\u304d\u308b\u304c\uff0c\u540c\u3058\u5834\u6240\u306b\u3042\u308b\u65b9\u304c\u7ba1\u7406\u304c\u697d\u3060\u308d\u3046\uff09\u3002sys.path.append\u306b\u306f\uff0cpip3\u3067\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u6642\u306b\u8868\u793a\u3055\u308c\u308b\uff0c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\u306e\u30d5\u30eb\u30d1\u30b9\u3092\u66f8\u304f\u3002<br \/>\nPython\u306f\u30a4\u30f3\u30c7\u30f3\u30c8\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u30d6\u30ed\u30c3\u30af\u3092\u533a\u5225\u3057\u3066\u3044\u308b\u306e\u3067\uff0c\u4e0d\u5fc5\u8981\u306a\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b\u304b\u3089\u6ce8\u610f\u3002\u307e\u305f\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u30d5\u30a1\u30a4\u30eb\u306e\u6539\u884c\u30b3\u30fc\u30c9\u304cCR\u3067\u306f\u3046\u307e\u304f\u3044\u304b\u305a\u3001LF\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u305d\u3046\u3002\u3046\u3063\u304b\u308a\u30a8\u30c7\u30a3\u30bf\u306e\u8a2d\u5b9a\u304cCR\u306b\u306a\u3063\u3066\u3066\u3001\u4f55\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3082\u3082\u51fa\u306a\u3044\u306e\u306b\u306a\u305c\u304b\u52d5\u304b\u306a\u3044\u3068\u3044\u3046\u72b6\u614b\u306b\u306a\u3063\u3066\u66ab\u304f\u60a9\u3093\u3060\u30021\u884c\u305a\u3064\u30a4\u30f3\u30bf\u30d7\u30ea\u30bf\u3067\u5b9f\u884c\u3057\u305f\u3089\u3001\u554f\u984c\u7121\u304f\u52d5\u3044\u305f\u306e\u3067\u3001\u6539\u884c\u30b3\u30fc\u30c9\u306e\u554f\u984c\u3060\u3068\u6c17\u3065\u3044\u305f\u306e\u3060\u3051\u3069\u2026\u2026\u3002<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>#!\/usr\/local\/python3.10.0\/bin\/python3.10<br \/>\n# -*- coding: utf-8 -*-<\/p>\n<p>import sys<br \/>\nsys.path.append(&#8216;\/usr\/local\/python3.10.0\/lib\/python3.10\/site-packages\/&#8217;)<\/p>\n<p>import random<br \/>\nimport tweepy<\/p>\n<p>\n#********\u306b\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u767b\u9332\u3057\u305f\u6642\u306btwitter\u793e\u304b\u3089\u5272\u308a\u632f\u3089\u308c\u308b4\u3064\u306e\u30ad\u30fc\u3092\u66f8\u304f\u3002<br \/>\nCONSUMER_KEY = &#8220;***************************************&#8221;<br \/> <br \/>\nCONSUMER_SECRET = &#8220;***************************************&#8221;<br \/>\nACCESS_TOKEN = &#8220;***************************************&#8221;<br \/>\nACCESS_TOKEN_SECRET = &#8220;***************************************&#8221;<\/p>\n<p>auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)<br \/>\nauth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)<br \/>\napi = tweepy.API(auth ,wait_on_rate_limit = True)<\/p>\n<p>#\u3064\u3076\u3084\u304f\u5185\u5bb9\u30921\u3064\u305a\u3064\u6539\u884c\u3067\u533a\u5207\u3063\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u914d\u5217\u306b\u8aad\u307f\u8fbc\u3080\u3002\u30d5\u30eb\u30d1\u30b9\u6307\u5b9a\u3057\u306a\u3044\u3068\u74b0\u5883\u306b\u3088\u3063\u3066\u306f\u52d5\u304b\u306a\u3044\u3002<br \/>\nwith open(&#8216;[path for data file]&#8217;, &#8216;r&#8217;) as f:<br \/>\n    message = f.read().split(&#8220;\\n&#8221;)<\/p>\n<p>#\u914d\u5217\u306e\u4e2d\u8eab\u3092\u30b7\u30e3\u30c3\u30d5\u30eb<br \/>\nrandom.shuffle(message)<\/p>\n<p>#\u30e1\u30c3\u30bb\u30fc\u30b8\u5185\u5bb9\u30c1\u30a7\u30c3\u30af\u7528\uff08\u672c\u756a\u3067\u306f\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\uff09<br \/>\n#print(message[0])<\/p>\n<p># \u3064\u3076\u3084\u304f\uff08\u672c\u756a\u3067\u306f\u3053\u3061\u3089\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u5916\u3059\uff09<br \/>\napi.update_status(message[0])<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>\n\u30b7\u30a7\u30eb\u304b\u3089\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u53e9\u3044\u3066\u5b9f\u884c\u3067\u304d\u308b\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u3089\u3001crontab\u306b\u767b\u9332\u3057\u3066\u5b9a\u671f\u7684\u306b\u5b9f\u884c\u3055\u305b\u308b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u308c\u307e\u3067\u305a\u3063\u3068\u3001\u30ac\u30c3\u30c1\u30e3\u30de\u30f3\u306e\u5357\u90e8\u535a\u58eb\u306e\u53f0\u8a5e\u3092\u545f\u304fbot\u3092\u904b\u7528\u3057\u3066\u304d\u3066\u3001\u305d\u308d\u305d\u308d\u5b87\u9580\u535a\u58eb\u306e\u3082\u4f5c\u3089\u306a\u3044\u3068\u306a\u3001\u3068\u601d\u3063\u3066\u3044\u305f\u3089\u3001API\u306e\u5909\u66f4\u304c\u3042\u3063\u3066\u3001\u3053\u308c\u307e\u3067\u304a\u4e16\u8a71\u306b\u306a\u3063\u305fEasyBotter\u304c\u52d5\u304b\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u3002\u3042\u305f\u3089\u3057 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3002","post","type-post","status-publish","format-standard","hentry","category-computers"],"_links":{"self":[{"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=\/wp\/v2\/posts\/3002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3002"}],"version-history":[{"count":0,"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=\/wp\/v2\/posts\/3002\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.frontier-line.org\/lognote\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}