{"id":851,"date":"2025-09-30T11:31:58","date_gmt":"2025-09-30T02:31:58","guid":{"rendered":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/?p=851"},"modified":"2025-09-30T11:32:03","modified_gmt":"2025-09-30T02:32:03","slug":"python","status":"publish","type":"post","link":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/blog\/sfa-support\/python\/","title":{"rendered":"Salesforce API\u3092Python\u304b\u3089\u5229\u7528\u3059\u308b\u969b\u306e\u8a8d\u8a3c\u65b9\u6cd5\u3084\u6ce8\u610f\u70b9"},"content":{"rendered":"<p>Salesforce\u306e\u5c0e\u5165\u30b5\u30dd\u30fc\u30c8\u3001\u958b\u767a\u30fb\u9023\u643a\u3092\u884c\u3046(\u682a)FDC\u306e\u30a8\u30f3\u30b8\u30cb\u30a2\u30c1\u30fc\u30e0\u304c\u3001<span class=\"epb-underline-01\">Python\u3067Salesforce API\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5\u3084\u6ce8\u610f\u70b9<\/span>\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u8a8d\u8a3c\u65b9\u6cd5\u304b\u3089\u5b9f\u88c5\u4f8b\u3001\u30a8\u30e9\u30fc\u5bfe\u51e6\u6cd5\u307e\u3067\u5b9f\u8df5\u7684\u306a\u60c5\u5831\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002Salesforce API\u3068Python\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u9023\u643a\u3084\u81ea\u52d5\u5316\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n<figure style=\"width: 100%;margin: 0;padding: 0\">\n    <a href=\"https:\/\/www.fdc-inc.co.jp\/sfsolution\/\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-content\/uploads\/sites\/14\/2025\/09\/SFsolution_ctr-min.png\" alt=\"\u682a\u5f0f\u4f1a\u793e\u30a8\u30d5\u30fb\u30c7\u30a3\u30fc\u30fb\u30b7\u30fc\u306fSalesforce\u30b3\u30f3\u30b5\u30eb\u30c6\u30a3\u30f3\u30b0\u30d1\u30fc\u30c8\u30ca\u30fc\" style=\"width: 100%;height: auto\" \/><br \/>\n    <\/a><br \/>\n<\/figure>\n<h2 class=\"wp-block-heading\">Salesforce API\u3068Python\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u7406\u7531<\/h2>\n<p>Salesforce API\u3068Python\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u7406\u7531\u306f\u591a\u5c90\u306b\u308f\u305f\u308a\u307e\u3059\u3002Python\u306f\u30c7\u30fc\u30bf\u51e6\u7406\u306b\u512a\u308c\u305f\u8a00\u8a9e\u3067\u3042\u308a\u3001<span class=\"epb-underline-01\">Salesforce\u306e\u5927\u91cf\u30c7\u30fc\u30bf\u3092\u52b9\u7387\u7684\u306b\u53d6\u5f97\u30fb\u52a0\u5de5<\/span>\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">Salesforce API\u306e\u7a2e\u985e\u3068\u7279\u5fb4<\/h3>\n<p>Salesforce\u3067\u306f\u8907\u6570\u306eAPI\u3092\u63d0\u4f9b\u3057\u3066\u304a\u308a\u3001\u7528\u9014\u306b\u5fdc\u3058\u3066\u9069\u5207\u306aAPI\u3092\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<figure class=\"wp-block-table is-style-table__border-bottom-left-right\">\n<table>\n<tbody>\n<tr>\n<td><strong>API\u7a2e\u985e<\/strong><\/td>\n<td><strong>\u7279\u5fb4<\/strong><\/td>\n<td><strong>\u6700\u9069\u306a\u7528\u9014<\/strong><\/td>\n<\/tr>\n<tr>\n<td>REST API<\/td>\n<td>HTTP\u30d9\u30fc\u30b9\u306e\u8efd\u91cfAPI<\/td>\n<td>CRUD\u64cd\u4f5c\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u51e6\u7406<\/td>\n<\/tr>\n<tr>\n<td>Bulk API<\/td>\n<td>\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u306b\u7279\u5316<\/td>\n<td>\u30c7\u30fc\u30bf\u79fb\u884c\u3001\u30d0\u30c3\u30c1\u51e6\u7406<\/td>\n<\/tr>\n<tr>\n<td>SOAP API<\/td>\n<td>\u53b3\u5bc6\u306a\u578b\u5b9a\u7fa9\u3092\u6301\u3064API<\/td>\n<td>\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u7d71\u5408<\/td>\n<\/tr>\n<tr>\n<td>Streaming API<\/td>\n<td>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30a4\u30d9\u30f3\u30c8\u901a\u77e5<\/td>\n<td>\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 class=\"wp-block-heading\">Python\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u9078\u629e<\/h3>\n<p>Python\u3067Salesforce API\u3092\u5229\u7528\u3059\u308b\u969b\u306f\u3001\u4ee5\u4e0b\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u63a8\u5968\u3055\u308c\u307e\u3059\uff1a<\/p>\n<ul class=\"jinr-list\">\n<li><strong>simple-salesforce<\/strong>\uff1a\u6700\u3082\u4e00\u822c\u7684\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3001REST API\u3068Bulk API\u3092\u30b5\u30dd\u30fc\u30c8<\/li>\n<li><strong>requests<\/strong>\uff1a\u4f4e\u30ec\u30d9\u30eb\u306aHTTP\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u5fc5\u8981\u306a\u5834\u5408<\/li>\n<li><strong>salesforce-bulk<\/strong>\uff1aBulk API\u5c02\u7528\u30e9\u30a4\u30d6\u30e9\u30ea<\/li>\n<li><strong>PyJWT<\/strong>\uff1aJWT\u8a8d\u8a3c\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u306b\u5fc5\u8981<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">\u8a8d\u8a3c\u65b9\u6cd5\u306e\u9078\u629e\u3068\u5b9f\u88c5<\/h2>\n<p>Salesforce API\u306e\u8a8d\u8a3c\u65b9\u6cd5\u306b\u306f\u8907\u6570\u306e\u9078\u629e\u80a2\u304c\u3042\u308a\u3001<span class=\"epb-underline-01\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8981\u4ef6\u3068\u7528\u9014\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e<\/span>\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">OAuth 2.0 JWT Bearer \u30d5\u30ed\u30fc\u306b\u3088\u308b\u8a8d\u8a3c<\/h3>\n<p>\u6700\u3082\u30bb\u30ad\u30e5\u30a2\u306a\u8a8d\u8a3c\u65b9\u6cd5\u3068\u3057\u3066\u3001\u81ea\u5df1\u8a3c\u660e\u66f8\u3092\u5229\u7528\u3057\u305fOAuth 2.0 JWT Bearer \u30d5\u30ed\u30fc\u304c\u63a8\u5968\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u65b9\u6cd5\u3067\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3084\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u76f4\u63a5\u3084\u308a\u53d6\u308a\u3059\u308b\u3053\u3068\u306a\u304f\u8a8d\u8a3c\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<h4 class=\"wp-block-heading\">JWT\u30d9\u30a2\u30e9\u30fc\u30d5\u30ed\u30fc\u5b9f\u88c5\u4f8b<\/h4>\n<p>\u4ee5\u4e0b\u306f\u3001Python\u3067JWT Bearer \u30d5\u30ed\u30fc\u3092\u5b9f\u88c5\u3059\u308b\u57fa\u672c\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3067\u3059\uff1a<\/p>\n<pre><code>import jwt\nimport requests\nimport datetime\nfrom simple_salesforce import Salesforce\n\ndef get_salesforce_token(private_key, consumer_id, username, endpoint):\n    jwt_payload = jwt.encode(\n        {\n            'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=30),\n            'iss': consumer_id,\n            'aud': endpoint,\n            'sub': username\n        },\n        private_key,\n        algorithm='RS256'\n    )\n    \n    result = requests.post(\n        endpoint + '\/services\/oauth2\/token',\n        data={\n            'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer',\n            'assertion': jwt_payload\n        }\n    )\n    \n    return result.json()\n<\/code><\/pre>\n<h3 class=\"wp-block-heading\">Refresh Token\u3092\u5229\u7528\u3057\u305f\u8a8d\u8a3c<\/h3>\n<p>\u7d99\u7d9a\u7684\u306a\u30c7\u30fc\u30bf\u9023\u643a\u3067\u306f\u3001<span class=\"epb-underline-01\">Refresh Token\u3092\u5229\u7528\u3057\u305f\u8a8d\u8a3c\u65b9\u5f0f<\/span>\u304c\u52b9\u7387\u7684\u3067\u3059\u3002\u4e00\u5ea6\u53d6\u5f97\u3057\u305fRefresh Token\u3092\u4f7f\u7528\u3057\u3066\u3001Access Token\u3092\u81ea\u52d5\u66f4\u65b0\u3067\u304d\u307e\u3059\u3002<\/p>\n<h4 class=\"wp-block-heading\">Refresh Token\u5b9f\u88c5\u4f8b<\/h4>\n<pre><code>class SalesforceManager:\n    def __init__(self):\n        self.client_id = os.environ['CLIENT_ID']\n        self.client_secret = os.environ['CLIENT_SECRET']\n        self.refresh_token = os.environ['REFRESH_TOKEN']\n        self.salesforce_url = os.environ['SALESFORCE_URL']\n\n    def get_access_token(self):\n        data = {\n            'grant_type': 'refresh_token',\n            'client_id': self.client_id,\n            'client_secret': self.client_secret,\n            'refresh_token': self.refresh_token\n        }\n        \n        response = requests.post(\n            f'{self.salesforce_url}\/services\/oauth2\/token',\n            data=data\n        )\n        \n        return response.json()['access_token']\n<\/code><\/pre>\n<h2 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u53d6\u5f97\u3068\u64cd\u4f5c\u306e\u5b9f\u8df5\u7684\u624b\u6cd5<\/h2>\n<p>Python\u3067Salesforce\u306e\u30c7\u30fc\u30bf\u3092\u52b9\u7387\u7684\u306b\u53d6\u5f97\u30fb\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u624b\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">Bulk API\u3092\u6d3b\u7528\u3057\u305f\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406<\/h3>\n<p><span class=\"epb-underline-01\">\u5927\u91cf\u30c7\u30fc\u30bf\u306e\u51e6\u7406\u306b\u306fBulk API\u306e\u5229\u7528\u304c\u5fc5\u9808<\/span>\u3067\u3059\u3002\u901a\u5e38\u306eREST API\u3067\u306f1\u56de\u306b\u3064\u304d\u6570\u767e\u4ef6\u7a0b\u5ea6\u306e\u5236\u9650\u304c\u3042\u308a\u307e\u3059\u304c\u3001Bulk API\u306a\u3089\u52b9\u7387\u7684\u306b\u5927\u91cf\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3067\u304d\u307e\u3059\u3002<\/p>\n<h4 class=\"wp-block-heading\">Bulk API\u3067\u306e\u30c7\u30fc\u30bf\u53d6\u5f97\u4f8b<\/h4>\n<pre><code>from simple_salesforce import Salesforce\nimport pandas as pd\n\ndef bulk_query_to_dataframe(sf, query):\n    # Bulk API\u3067\u30af\u30a8\u30ea\u3092\u5b9f\u884c\n    data = sf.bulk.Account.query(query)\n    \n    # DataFrame\u306b\u5909\u63db\uff08attributes\u30ab\u30e9\u30e0\u3092\u9664\u5916\uff09\n    df = pd.DataFrame.from_dict(data, orient='columns').drop('attributes', axis=1)\n    \n    return df\n\n# \u4f7f\u7528\u4f8b\nsf = Salesforce(instance_url=instance_url, session_id=session_id)\nquery = \"SELECT Id, Name, Type, Industry FROM Account WHERE CreatedDate = TODAY\"\naccount_df = bulk_query_to_dataframe(sf, query)\n<\/code><\/pre>\n<h3 class=\"wp-block-heading\">CRUD\u64cd\u4f5c\u306e\u5b9f\u88c5<\/h3>\n<p>\u57fa\u672c\u7684\u306aCRUD\u64cd\u4f5c\uff08Create\u3001Read\u3001Update\u3001Delete\uff09\u306e\u5b9f\u88c5\u65b9\u6cd5\u3092\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<ul class=\"jinr-list\">\n<li><strong>Create\uff08\u4f5c\u6210\uff09<\/strong>\uff1a\u65b0\u3057\u3044\u30ec\u30b3\u30fc\u30c9\u306e\u4f5c\u6210<\/li>\n<li><strong>Read\uff08\u8aad\u307f\u53d6\u308a\uff09<\/strong>\uff1a\u30c7\u30fc\u30bf\u306e\u691c\u7d22\u30fb\u53d6\u5f97<\/li>\n<li><strong>Update\uff08\u66f4\u65b0\uff09<\/strong>\uff1a\u65e2\u5b58\u30ec\u30b3\u30fc\u30c9\u306e\u4fee\u6b63<\/li>\n<li><strong>Delete\uff08\u524a\u9664\uff09<\/strong>\uff1a\u30ec\u30b3\u30fc\u30c9\u306e\u524a\u9664<\/li>\n<\/ul>\n<h4 class=\"wp-block-heading\">CRUD\u64cd\u4f5c\u306e\u5b9f\u88c5\u4f8b<\/h4>\n<pre><code># \u30ec\u30b3\u30fc\u30c9\u4f5c\u6210\nnew_account = sf.Account.create({\n    'Name': '\u65b0\u898f\u30a2\u30ab\u30a6\u30f3\u30c8',\n    'Type': 'Customer',\n    'Industry': 'Technology'\n})\n\n# \u30ec\u30b3\u30fc\u30c9\u53d6\u5f97\naccount = sf.Account.get('001XXXXXXXXXXXXXXX')\n\n# \u30ec\u30b3\u30fc\u30c9\u66f4\u65b0\nsf.Account.update('001XXXXXXXXXXXXXXX', {\n    'Name': '\u66f4\u65b0\u3055\u308c\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u540d'\n})\n\n# \u30ec\u30b3\u30fc\u30c9\u524a\u9664\nsf.Account.delete('001XXXXXXXXXXXXXXX')\n<\/code><\/pre>\n<h2 class=\"wp-block-heading\">\u30a8\u30e9\u30fc\u51e6\u7406\u3068\u4f8b\u5916\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0<\/h2>\n<p>Salesforce API\u3092\u5229\u7528\u3059\u308b\u969b\u306f\u3001<span class=\"epb-underline-01\">\u9069\u5207\u306a\u30a8\u30e9\u30fc\u51e6\u7406\u3068\u4f8b\u5916\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u5b9f\u88c5<\/span>\u304c\u4e0d\u53ef\u6b20\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u4e3b\u8981\u306a\u30a8\u30e9\u30fc\u30bf\u30a4\u30d7<\/h3>\n<figure class=\"wp-block-table is-style-table__border-bottom-left-right\">\n<table>\n<tbody>\n<tr>\n<td><strong>\u30a8\u30e9\u30fc\u30bf\u30a4\u30d7<\/strong><\/td>\n<td><strong>\u8aac\u660e<\/strong><\/td>\n<td><strong>\u5bfe\u51e6\u6cd5<\/strong><\/td>\n<\/tr>\n<tr>\n<td>SalesforceAuthenticationFailed<\/td>\n<td>\u8a8d\u8a3c\u30a8\u30e9\u30fc<\/td>\n<td>\u8a8d\u8a3c\u60c5\u5831\u306e\u78ba\u8a8d\u3001\u30c8\u30fc\u30af\u30f3\u306e\u518d\u53d6\u5f97<\/td>\n<\/tr>\n<tr>\n<td>SalesforceResourceNotFound<\/td>\n<td>\u30ea\u30bd\u30fc\u30b9\u304c\u898b\u3064\u304b\u3089\u306a\u3044<\/td>\n<td>API\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3084ID\u306e\u78ba\u8a8d<\/td>\n<\/tr>\n<tr>\n<td>SalesforceGeneralError<\/td>\n<td>\u4e00\u822c\u7684\u306aAPI\u30a8\u30e9\u30fc<\/td>\n<td>\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5185\u5bb9\u78ba\u8a8d\u3001\u518d\u8a66\u884c<\/td>\n<\/tr>\n<tr>\n<td>Rate Limit Exceeded<\/td>\n<td>API\u5236\u9650\u306e\u8d85\u904e<\/td>\n<td>\u30ea\u30af\u30a8\u30b9\u30c8\u9593\u9694\u306e\u8abf\u6574\u3001Bulk API\u5229\u7528<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3 class=\"wp-block-heading\">\u4f8b\u5916\u51e6\u7406\u306e\u5b9f\u88c5\u4f8b<\/h3>\n<pre><code>from simple_salesforce.exceptions import (\n    SalesforceAuthenticationFailed,\n    SalesforceResourceNotFound,\n    SalesforceGeneralError\n)\nimport time\n\ndef safe_api_call(func, *args, **kwargs):\n    max_retries = 3\n    retry_count = 0\n    \n    while retry_count &lt; max_retries:\n        try:\n            return func(*args, **kwargs)\n            \n        except SalesforceAuthenticationFailed as e:\n            print(f&quot;\u8a8d\u8a3c\u30a8\u30e9\u30fc: {e}&quot;)\n            # \u8a8d\u8a3c\u60c5\u5831\u3092\u518d\u53d6\u5f97\n            refresh_authentication()\n            \n        except SalesforceResourceNotFound as e:\n            print(f&quot;\u30ea\u30bd\u30fc\u30b9\u672a\u767a\u898b: {e}&quot;)\n            break\n            \n        except SalesforceGeneralError as e:\n            if &quot;Rate limit exceeded&quot; in str(e):\n                wait_time = 2 ** retry_count  # \u6307\u6570\u30d0\u30c3\u30af\u30aa\u30d5\n                print(f&quot;\u30ec\u30fc\u30c8\u5236\u9650\u30a8\u30e9\u30fc\u3002{wait_time}\u79d2\u5f85\u6a5f\u3057\u307e\u3059&quot;)\n                time.sleep(wait_time)\n            else:\n                print(f&quot;\u4e00\u822c\u30a8\u30e9\u30fc: {e}&quot;)\n                \n        retry_count += 1\n        \n    return None\n<\/code><\/pre>\n<h2 class=\"wp-block-heading\">API\u5236\u9650\u3078\u306e\u5bfe\u51e6\u6cd5<\/h2>\n<p>Salesforce API\u306b\u306f\u69d8\u3005\u306a\u5236\u9650\u304c\u3042\u308a\u3001<span class=\"epb-underline-01\">\u3053\u308c\u3089\u306e\u5236\u9650\u3092\u7406\u89e3\u3057\u9069\u5207\u306b\u5bfe\u51e6\u3059\u308b<\/span>\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">API\u5236\u9650\u306e\u7a2e\u985e<\/h3>\n<ol class=\"jinr-list\">\n<li><strong>24\u6642\u9593\u306eAPI\u30b3\u30fc\u30eb\u5236\u9650<\/strong>\uff1a\u7d44\u7e54\u306e\u30a8\u30c7\u30a3\u30b7\u30e7\u30f3\u306b\u5fdc\u3058\u305f1\u65e5\u306eAPI\u30b3\u30fc\u30eb\u6570\u4e0a\u9650<\/li>\n<li><strong>\u540c\u6642\u63a5\u7d9a\u6570\u5236\u9650<\/strong>\uff1a\u540c\u6642\u306b\u5b9f\u884c\u3067\u304d\u308bAPI\u63a5\u7d9a\u306e\u6570<\/li>\n<li><strong>\u30af\u30a8\u30ea\u7d50\u679c\u30b5\u30a4\u30ba\u5236\u9650<\/strong>\uff1a1\u56de\u306e\u30af\u30a8\u30ea\u3067\u53d6\u5f97\u3067\u304d\u308b\u30c7\u30fc\u30bf\u30b5\u30a4\u30ba<\/li>\n<li><strong>\u30d0\u30c3\u30c1\u51e6\u7406\u5236\u9650<\/strong>\uff1aBulk API\u3067\u306e\u30d0\u30c3\u30c1\u6570\u3084\u30ec\u30b3\u30fc\u30c9\u6570\u306e\u5236\u9650<\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\">\u5236\u9650\u56de\u907f\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n<ul class=\"jinr-list\">\n<li><strong>Bulk API\u306e\u6d3b\u7528<\/strong>\uff1a\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u6642\u306f\u5fc5\u305aBulk API\u3092\u4f7f\u7528<\/li>\n<li><strong>\u52b9\u7387\u7684\u306a\u30af\u30a8\u30ea\u8a2d\u8a08<\/strong>\uff1a\u5fc5\u8981\u306a\u9805\u76ee\u306e\u307f\u3092\u53d6\u5f97\u3059\u308b\u30af\u30a8\u30ea\u306e\u6700\u9069\u5316<\/li>\n<li><strong>\u30ad\u30e3\u30c3\u30b7\u30e5\u6a5f\u80fd\u306e\u5b9f\u88c5<\/strong>\uff1a\u983b\u7e41\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u30c7\u30fc\u30bf\u306e\u30ad\u30e3\u30c3\u30b7\u30e5<\/li>\n<li><strong>\u975e\u540c\u671f\u51e6\u7406\u306e\u6d3b\u7528<\/strong>\uff1a\u51e6\u7406\u306e\u4e26\u5217\u5316\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a<\/li>\n<\/ul>\n<h4 class=\"wp-block-heading\">\u5236\u9650\u76e3\u8996\u3068\u30a2\u30e9\u30fc\u30c8\u6a5f\u80fd<\/h4>\n<pre><code>def monitor_api_usage(sf):\n    try:\n        # API\u4f7f\u7528\u72b6\u6cc1\u306e\u53d6\u5f97\n        limits = sf.limits()\n        daily_api_requests = limits.get('DailyApiRequests', {})\n        current_usage = daily_api_requests.get('Used', 0)\n        max_usage = daily_api_requests.get('Max', 0)\n        \n        usage_percentage = (current_usage \/ max_usage) * 100 if max_usage &gt; 0 else 0\n        \n        if usage_percentage &gt; 80:\n            print(f\"\u8b66\u544a: API\u4f7f\u7528\u7387\u304c{usage_percentage:.1f}%\u306b\u9054\u3057\u3066\u3044\u307e\u3059\")\n            \n        return usage_percentage\n        \n    except Exception as e:\n        print(f\"API\u4f7f\u7528\u72b6\u6cc1\u306e\u53d6\u5f97\u30a8\u30e9\u30fc: {e}\")\n        return None\n<\/code><\/pre>\n<h2 class=\"wp-block-heading\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n<p>Python\u3067Salesforce API\u3092\u5229\u7528\u3059\u308b\u969b\u306e<span class=\"epb-underline-01\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/span>\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u63a5\u7d9a\u30d7\u30fc\u30ea\u30f3\u30b0\u3068\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406<\/h3>\n<p>\u52b9\u7387\u7684\u306aAPI\u30b3\u30fc\u30eb\u306e\u305f\u3081\u306b\u3001\u63a5\u7d9a\u30d7\u30fc\u30ea\u30f3\u30b0\u3068\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n<pre><code>import requests\nfrom requests.adapters import HTTPAdapter\nfrom urllib3.util.retry import Retry\n\nclass OptimizedSalesforceClient:\n    def __init__(self):\n        self.session = requests.Session()\n        \n        # \u30ea\u30c8\u30e9\u30a4\u6226\u7565\u306e\u8a2d\u5b9a\n        retry_strategy = Retry(\n            total=3,\n            backoff_factor=1,\n            status_forcelist=[429, 500, 502, 503, 504]\n        )\n        \n        adapter = HTTPAdapter(max_retries=retry_strategy)\n        self.session.mount(\"http:\/\/\", adapter)\n        self.session.mount(\"https:\/\/\", adapter)\n        \n    def close(self):\n        self.session.close()\n<\/code><\/pre>\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u51e6\u7406\u306e\u52b9\u7387\u5316<\/h3>\n<ul class=\"jinr-list\">\n<li><strong>pandas\u306e\u6d3b\u7528<\/strong>\uff1a\u5927\u91cf\u30c7\u30fc\u30bf\u306e\u52b9\u7387\u7684\u306a\u51e6\u7406\u3068\u5206\u6790<\/li>\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316<\/strong>\uff1a\u30c1\u30e3\u30f3\u30af\u51e6\u7406\u306b\u3088\u308b\u5927\u5bb9\u91cf\u30d5\u30a1\u30a4\u30eb\u306e\u51e6\u7406<\/li>\n<li><strong>\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5<\/strong>\uff1aconcurrent.futures\u3092\u5229\u7528\u3057\u305f\u4e26\u5217API\u547c\u3073\u51fa\u3057<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8003\u616e\u4e8b\u9805<\/h2>\n<p>Salesforce API\u3092\u5b89\u5168\u306b\u5229\u7528\u3059\u308b\u305f\u3081\u306e<span class=\"epb-underline-01\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8003\u616e\u4e8b\u9805<\/span>\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u8a8d\u8a3c\u60c5\u5831\u306e\u5b89\u5168\u306a\u7ba1\u7406<\/h3>\n<ol class=\"jinr-list\">\n<li><strong>\u74b0\u5883\u5909\u6570\u306e\u5229\u7528<\/strong>\uff1a\u8a8d\u8a3c\u60c5\u5831\u3092\u30b3\u30fc\u30c9\u306b\u76f4\u63a5\u8a18\u8ff0\u3057\u306a\u3044<\/li>\n<li><strong>\u6697\u53f7\u5316\u30b9\u30c8\u30ec\u30fc\u30b8<\/strong>\uff1aAWS Systems Manager\u3084Azure Key Vault\u306e\u6d3b\u7528<\/li>\n<li><strong>\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/strong>\uff1a\u6700\u5c0f\u6a29\u9650\u306e\u539f\u5247\u306b\u57fa\u3065\u304f\u6a29\u9650\u8a2d\u5b9a<\/li>\n<li><strong>\u8a3c\u660e\u66f8\u306e\u7ba1\u7406<\/strong>\uff1a\u5b9a\u671f\u7684\u306a\u8a3c\u660e\u66f8\u306e\u66f4\u65b0\u3068\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\">\u901a\u4fe1\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/h3>\n<ul class=\"jinr-list\">\n<li><strong>HTTPS\u901a\u4fe1\u306e\u5f37\u5236<\/strong>\uff1a\u3059\u3079\u3066\u306eAPI\u901a\u4fe1\u3067HTTPS\u3092\u4f7f\u7528<\/li>\n<li><strong>IP\u5236\u9650\u306e\u5b9f\u88c5<\/strong>\uff1a\u63a5\u7d9a\u5143IP\u30a2\u30c9\u30ec\u30b9\u306e\u5236\u9650<\/li>\n<li><strong>\u30ed\u30b0\u76e3\u8996<\/strong>\uff1a\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u306e\u691c\u77e5\u3068\u30a2\u30e9\u30fc\u30c8<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">\u5b9f\u7528\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3068\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/h2>\n<p>\u5b9f\u969b\u306e\u30d3\u30b8\u30cd\u30b9\u30b7\u30fc\u30f3\u3067\u6d3b\u7528\u3067\u304d\u308b<span class=\"epb-underline-01\">\u5b9f\u7528\u7684\u306a\u30b3\u30fc\u30c9\u4f8b<\/span>\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u6a5f\u80fd<\/h3>\n<pre><code>def export_salesforce_data_to_csv(sf, object_name, fields, filename):\n    \"\"\"Salesforce\u30c7\u30fc\u30bf\u3092CSV\u306b\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\"\"\"\n    query = f\"SELECT {','.join(fields)} FROM {object_name}\"\n    \n    try:\n        # Bulk API\u3067\u30c7\u30fc\u30bf\u53d6\u5f97\n        data = sf.bulk.__getattr__(object_name).query(query)\n        \n        # DataFrame\u306b\u5909\u63db\n        df = pd.DataFrame(data)\n        if 'attributes' in df.columns:\n            df = df.drop('attributes', axis=1)\n        \n        # CSV\u306b\u51fa\u529b\n        df.to_csv(filename, index=False)\n        print(f\"\u30c7\u30fc\u30bf\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u5b8c\u4e86: {filename} ({len(df)}\u4ef6)\")\n        \n    except Exception as e:\n        print(f\"\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u30a8\u30e9\u30fc: {e}\")\n<\/code><\/pre>\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u540c\u671f\u6a5f\u80fd<\/h3>\n<pre><code>def sync_data_with_external_system(sf, external_data):\n    \"\"\"\u5916\u90e8\u30b7\u30b9\u30c6\u30e0\u3068\u306e\u30c7\u30fc\u30bf\u540c\u671f\"\"\"\n    sync_results = {\n        'created': 0,\n        'updated': 0,\n        'errors': []\n    }\n    \n    for record in external_data:\n        try:\n            # \u65e2\u5b58\u30ec\u30b3\u30fc\u30c9\u306e\u691c\u7d22\n            existing = sf.query(f\"SELECT Id FROM Account WHERE External_Id__c = '{record['external_id']}'\")\n            \n            if existing['totalSize'] &gt; 0:\n                # \u66f4\u65b0\u51e6\u7406\n                sf.Account.update(existing['records'][0]['Id'], record)\n                sync_results['updated'] += 1\n            else:\n                # \u65b0\u898f\u4f5c\u6210\n                sf.Account.create(record)\n                sync_results['created'] += 1\n                \n        except Exception as e:\n            sync_results['errors'].append(f\"Record {record.get('external_id')}: {e}\")\n    \n    return sync_results\n<\/code><\/pre>\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001Python\u3067Salesforce API\u3092\u52b9\u7387\u7684\u306b\u5229\u7528\u3059\u308b\u305f\u3081\u306e\u65b9\u6cd5\u3084\u6ce8\u610f\u70b9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3057\u305f\u3002\u8a8d\u8a3c\u65b9\u6cd5\u306e\u9078\u629e\u304b\u3089\u5b9f\u88c5\u3001\u30a8\u30e9\u30fc\u51e6\u7406\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u307e\u3067\u3001\u5b9f\u8df5\u7684\u306a\u5185\u5bb9\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u7279\u306b\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3068\u3057\u3066\u3001\u4ee5\u4e0b\u304c\u6319\u3052\u3089\u308c\u307e\u3059\uff1a<\/p>\n<ul class=\"jinr-list\">\n<li>\u30bb\u30ad\u30e5\u30a2\u306a\u8a8d\u8a3c\u65b9\u6cd5\uff08JWT Bearer \u30d5\u30ed\u30fc\u3001Refresh Token\uff09\u306e\u9069\u5207\u306a\u9078\u629e<\/li>\n<li>\u5927\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u306b\u304a\u3051\u308bBulk API\u306e\u7a4d\u6975\u7684\u306a\u6d3b\u7528<\/li>\n<li>API\u5236\u9650\u3092\u8003\u616e\u3057\u305f\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u53d6\u5f97\u6226\u7565<\/li>\n<li>\u5805\u7262\u306a\u30a8\u30e9\u30fc\u51e6\u7406\u3068\u4f8b\u5916\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u5b9f\u88c5<\/li>\n<\/ul>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u3054\u7d39\u4ecb\u3057\u305f\u3088\u3046\u306b<strong><span style=\"color: #ff0000\">API\u9023\u643a\u3084Salesforce\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u306b\u306f\u77e5\u898b\u3084\u30ea\u30bd\u30fc\u30b9\u304c\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059\u3002\u5f0a\u793e\uff08\u682a\uff09FDC\u306e\u300cSFSolution\u300d\u306a\u3089Salesforce\u306e\u5c0e\u5165\u30b5\u30dd\u30fc\u30c8\u3001\u958b\u767a\u30fb\u9023\u643a\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd<\/span><\/strong>\u3067\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3092\u8aad\u3093\u3067Salesforce\u30b5\u30dd\u30fc\u30c8\u306b\u8208\u5473\u3092\u6301\u305f\u308c\u305f\u65b9\u306f\u3001\u305c\u3072\u304a\u6c17\u8efd\u306b\u3054\u76f8\u8ac7\u304f\u3060\u3055\u3044\u3002\u8cb4\u793e\u306e\u30d3\u30b8\u30cd\u30b9\u306b\u6700\u9069\u306a\u6d3b\u7528\u8853\u3092\u3054\u63d0\u6848\u3057\u307e\u3059\u3002<\/p>\n<\/p>\n\n\n<figure style=\"width: 100%;margin: 0;padding: 0\">\n    <a href=\"https:\/\/www.fdc-inc.co.jp\/sfsolution\/\">\n        <img decoding=\"async\" src=\"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-content\/uploads\/sites\/14\/2025\/09\/SFsolution_ctr-min.png\" alt=\"\u682a\u5f0f\u4f1a\u793e\u30a8\u30d5\u30fb\u30c7\u30a3\u30fc\u30fb\u30b7\u30fc\u306fSalesforce\u30b3\u30f3\u30b5\u30eb\u30c6\u30a3\u30f3\u30b0\u30d1\u30fc\u30c8\u30ca\u30fc\" style=\"width: 100%;height: auto\" \/>\n    <\/a>\n<\/figure>\n\n\n\n<div class=\"wp-block-group alignfull epb-margin-top__0 epb-margin-top__0-tablet epb-margin-top__0-sp is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-emanon-premium-blocks-background alignfull epb-background epb-inner-setting-advanced is-style-epb-custom-content epb-margin-top__32 epb-margin-top__default-sp epb-margin-top__default-tablet service_inquiry epb-display__pc\" style=\"--epb-flow-vertical:0%;--epb-flow-horizontal:0%;--epb-block-width-sp:100%;--epb-block-width-tablet:100%;--epb-block-width-pc:100%;--epb-content-width:1180px;--epb-content-margin-top:0;--epb-content-margin-bottom:0;--epb-content-margin-left:0;--epb-content-margin-right:0;--epb-padding-top-sp:16px;--epb-padding-bottom-sp:16px;--epb-padding-l-sp:16px;--epb-padding-r-sp:16px;--epb-padding-top-tablet:16px;--epb-padding-bottom-tablet:16px;--epb-padding-l-tablet:16px;--epb-padding-r-tablet:16px;--epb-padding-top-pc:20px;--epb-padding-bottom-pc:19px;--epb-padding-l-pc:16px;--epb-padding-r-pc:16px\"><div class=\"epb-background__section is-style-epb-flow-radius__0 is-style-epb-flow-radius__up-bottom is-style-epb-flow-zindex-0\" style=\"width:100%;height:100%;opacity:1\"><\/div><div class=\"epb-background__wrapper is-style-epb-fixed-radius__0 is-style-epb-fixed-radius__up-bottom\" style=\"background-color:#ffffff\"><div class=\"epb-background__inner\"><div class=\"epb-l-content__main\">\n<div class=\"wp-block-emanon-premium-blocks-buttons epb-buttons epb-alignment-center epb-margin-top__default\">\n<div class=\"epb-button wp-block-emanon-premium-blocks-button-template epb-btn-margin-sp-sm epb-btn-margin-tablet-sm epb-btn-margin-pc-m epb-margin-top__default epb-margin-top__default-sp epb-margin-top__default-tablet\" data-button-size=\"m\"><div class=\"epb-btn-size__m\" style=\"--epb-button-text-font-sp:14px;--epb-button-text-font-tablet:14px;--epb-button-text-font-pc:20px;--epb-microcopy-top-font-sp:12px;--epb-microcopy-top-font-tablet:12px;--epb-microcopy-top-font-pc:12px;--epb-microcopy-bottom-font-sp:12px;--epb-microcopy-bottom-font-tablet:12px;--epb-microcopy-bottom-font-pc:12px\"><a style=\"--epb-button-bg-color:#2c587e;--epb-button-border-color:#2c587e;--epb-button-text-color:#ffffff;--epb-button-border-size:2px\" class=\"epb-btn epb-btn__outline is-style-epb-radius__10 is-style-epb-button__shadow is-style-epb-hover__lustre\" href=\"\/sfsolution\/contact\/dl-doc\/\"><span class=\"epb-btn-text\" data-fontweight=\"normal\" style=\"line-height:1;font-weight:normal;letter-spacing:0em\"><span data-fontsize=\"12px\" style=\"font-size:12px;\" class=\"epb-font-size\"><strong>FDC\u3067\u3067\u304d\u308bSalesforce\u6d3b\u7528\u3068\u306f<\/strong><\/span><br><span class=\"icon-file\"><strong>\u8cc7\u6599\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b<\/strong><\/span><\/span><\/a><\/div><\/div>\n\n\n\n<div class=\"epb-button wp-block-emanon-premium-blocks-button-template epb-btn-margin-sp-sm epb-btn-margin-tablet-sm epb-btn-margin-pc-m epb-margin-top__default epb-margin-top__default-sp epb-margin-top__default-tablet\" data-button-size=\"m\"><div class=\"epb-btn-size__m\" style=\"--epb-button-text-font-sp:14px;--epb-button-text-font-tablet:14px;--epb-button-text-font-pc:20px;--epb-microcopy-top-font-sp:12px;--epb-microcopy-top-font-tablet:12px;--epb-microcopy-top-font-pc:12px;--epb-microcopy-bottom-font-sp:12px;--epb-microcopy-bottom-font-tablet:12px;--epb-microcopy-bottom-font-pc:12px\"><a style=\"--epb-button-bg-color:#ffbb00;--epb-button-border-color:#ffbb00;--epb-button-text-color:#ffffff;--epb-button-border-size:2px\" class=\"epb-btn epb-btn__outline is-style-epb-radius__10 is-style-epb-button__shadow is-style-epb-hover__lustre\" href=\"\/sfsolution\/contact\/contact\/\"><span class=\"epb-btn-text icon-double-circle-after\" data-fontweight=\"normal\" style=\"line-height:1;font-weight:normal;letter-spacing:0em\"><span data-fontsize=\"12px\" style=\"font-size:12px;\" class=\"epb-font-size\">Salesforce\u30b5\u30dd\u30fc\u30c8\u306b\u95a2\u3059\u308b\u3054\u76f8\u8ac7<\/span><br><span class=\"icon-mail\"><strong>\u7121\u6599\u76f8\u8ac7\u3092\u3059\u308b<\/strong><\/span><\/span><\/a><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-emanon-premium-blocks-background alignfull epb-background epb-inner-setting-advanced is-style-epb-custom-content epb-margin-top__default epb-margin-top__default-sp epb-margin-top__24-tablet service_inquiry epb-display__tablet\" style=\"--epb-flow-vertical:0%;--epb-flow-horizontal:0%;--epb-block-width-sp:100%;--epb-block-width-tablet:100%;--epb-block-width-pc:100%;--epb-content-width:1180px;--epb-content-margin-top:0;--epb-content-margin-bottom:0;--epb-content-margin-left:0;--epb-content-margin-right:0;--epb-padding-top-sp:16px;--epb-padding-bottom-sp:16px;--epb-padding-l-sp:16px;--epb-padding-r-sp:16px;--epb-padding-top-tablet:16px;--epb-padding-bottom-tablet:16px;--epb-padding-l-tablet:16px;--epb-padding-r-tablet:16px;--epb-padding-top-pc:20px;--epb-padding-bottom-pc:19px;--epb-padding-l-pc:16px;--epb-padding-r-pc:16px\"><div class=\"epb-background__section is-style-epb-flow-radius__0 is-style-epb-flow-radius__up-bottom is-style-epb-flow-zindex-0\" style=\"width:100%;height:100%;opacity:1\"><\/div><div class=\"epb-background__wrapper is-style-epb-fixed-radius__0 is-style-epb-fixed-radius__up-bottom\" style=\"background-color:#ffffff\"><div class=\"epb-background__inner\"><div class=\"epb-l-content__main\">\n<div class=\"wp-block-emanon-premium-blocks-buttons epb-buttons epb-alignment-center epb-margin-top__default\">\n<div class=\"epb-button wp-block-emanon-premium-blocks-button-template epb-btn-margin-sp-sm epb-btn-margin-tablet-sm epb-btn-margin-pc-m epb-margin-top__default epb-margin-top__default-sp epb-margin-top__default-tablet\" data-button-size=\"m\"><div class=\"epb-btn-size__m\" style=\"--epb-button-text-font-sp:14px;--epb-button-text-font-tablet:14px;--epb-button-text-font-pc:20px;--epb-microcopy-top-font-sp:12px;--epb-microcopy-top-font-tablet:12px;--epb-microcopy-top-font-pc:12px;--epb-microcopy-bottom-font-sp:12px;--epb-microcopy-bottom-font-tablet:12px;--epb-microcopy-bottom-font-pc:12px\"><a style=\"--epb-button-bg-color:#2c587e;--epb-button-border-color:#2c587e;--epb-button-text-color:#ffffff;--epb-button-border-size:2px\" class=\"epb-btn epb-btn__outline is-style-epb-radius__10 is-style-epb-button__shadow is-style-epb-hover__lustre\" href=\"\/sfsolution\/contact\/dl-doc\/\"><span class=\"epb-btn-text\" data-fontweight=\"normal\" style=\"line-height:1;font-weight:normal;letter-spacing:0em\"><span data-fontsize=\"12px\" style=\"font-size:12px;\" class=\"epb-font-size\"><strong>FDC\u3067\u3067\u304d\u308bSalesforce\u6d3b\u7528<\/strong><\/span><br><span class=\"icon-file\"><strong>\u8cc7\u6599\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b<\/strong><\/span><\/span><\/a><\/div><\/div>\n\n\n\n<div class=\"epb-button wp-block-emanon-premium-blocks-button-template epb-btn-margin-sp-sm epb-btn-margin-tablet-sm epb-btn-margin-pc-m epb-margin-top__default epb-margin-top__default-sp epb-margin-top__default-tablet\" data-button-size=\"m\"><div class=\"epb-btn-size__m\" style=\"--epb-button-text-font-sp:14px;--epb-button-text-font-tablet:14px;--epb-button-text-font-pc:20px;--epb-microcopy-top-font-sp:12px;--epb-microcopy-top-font-tablet:12px;--epb-microcopy-top-font-pc:12px;--epb-microcopy-bottom-font-sp:12px;--epb-microcopy-bottom-font-tablet:12px;--epb-microcopy-bottom-font-pc:12px\"><a style=\"--epb-button-bg-color:#ffbb00;--epb-button-border-color:#ffbb00;--epb-button-text-color:#ffffff;--epb-button-border-size:2px\" class=\"epb-btn epb-btn__outline is-style-epb-radius__10 is-style-epb-button__shadow is-style-epb-hover__lustre\" href=\"\/sfsolution\/contact\/contact\/\"><span class=\"epb-btn-text\" data-fontweight=\"normal\" style=\"line-height:1;font-weight:normal;letter-spacing:0em\"><span data-fontsize=\"12px\" style=\"font-size:12px;\" class=\"epb-font-size\">Salesforce\u30b5\u30dd\u30fc\u30c8\u306b\u95a2\u3059\u308b\u3054\u76f8\u8ac7<\/span><br><span class=\"icon-mail\"><strong>\u7121\u6599\u76f8\u8ac7\u3092\u3059\u308b<\/strong><\/span><\/span><\/a><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-emanon-premium-blocks-background alignfull epb-background epb-inner-setting-advanced is-style-epb-custom-content epb-margin-top__default epb-margin-top__16-sp epb-margin-top__default-tablet service_inquiry epb-display__sp-only\" style=\"--epb-flow-vertical:0%;--epb-flow-horizontal:0%;--epb-block-width-sp:100%;--epb-block-width-tablet:100%;--epb-block-width-pc:100%;--epb-content-width:1180px;--epb-content-margin-top:0;--epb-content-margin-bottom:0;--epb-content-margin-left:0;--epb-content-margin-right:0;--epb-padding-top-sp:16px;--epb-padding-bottom-sp:16px;--epb-padding-l-sp:16px;--epb-padding-r-sp:16px;--epb-padding-top-tablet:16px;--epb-padding-bottom-tablet:16px;--epb-padding-l-tablet:16px;--epb-padding-r-tablet:16px;--epb-padding-top-pc:20px;--epb-padding-bottom-pc:19px;--epb-padding-l-pc:16px;--epb-padding-r-pc:16px\"><div class=\"epb-background__section is-style-epb-flow-radius__0 is-style-epb-flow-radius__up-bottom is-style-epb-flow-zindex-0\" style=\"width:100%;height:100%;opacity:1\"><\/div><div class=\"epb-background__wrapper is-style-epb-fixed-radius__0 is-style-epb-fixed-radius__up-bottom\" style=\"background-color:#ffffff\"><div class=\"epb-background__inner\"><div class=\"epb-l-content__main\">\n<div class=\"wp-block-emanon-premium-blocks-buttons epb-buttons epb-alignment-center epb-margin-top__default\">\n<div class=\"epb-button wp-block-emanon-premium-blocks-button-template epb-btn-margin-sp-sm epb-btn-margin-tablet-sm epb-btn-margin-pc-m epb-margin-top__default epb-margin-top__default-sp epb-margin-top__default-tablet\" data-button-size=\"full\"><div class=\"epb-btn-size__full\" style=\"--epb-button-text-font-sp:14px;--epb-button-text-font-tablet:14px;--epb-button-text-font-pc:20px;--epb-microcopy-top-font-sp:12px;--epb-microcopy-top-font-tablet:12px;--epb-microcopy-top-font-pc:12px;--epb-microcopy-bottom-font-sp:12px;--epb-microcopy-bottom-font-tablet:12px;--epb-microcopy-bottom-font-pc:12px\"><a style=\"--epb-button-bg-color:#ffbb00;--epb-button-border-color:#ffbb00;--epb-button-text-color:#ffffff;--epb-button-border-size:2px\" class=\"epb-btn epb-btn__outline is-style-epb-radius__10 is-style-epb-button__shadow is-style-epb-hover__lustre\" href=\"\/sfsolution\/contact\/contact\/\"><span class=\"epb-btn-text\" data-fontweight=\"normal\" style=\"line-height:1;font-weight:normal;letter-spacing:0em\"><span data-fontsize=\"12px\" style=\"font-size:12px;\" class=\"epb-font-size\">Salesforce\u30b5\u30dd\u30fc\u30c8\u306b\u95a2\u3059\u308b\u3054\u76f8\u8ac7<\/span><br><span class=\"icon-mail\"><strong>\u7121\u6599\u76f8\u8ac7\u3092\u3059\u308b<\/strong><\/span><\/span><\/a><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Salesforce\u306e\u5c0e\u5165\u30b5\u30dd\u30fc\u30c8\u3001\u958b\u767a\u30fb\u9023\u643a\u3092\u884c\u3046(\u682a)FDC\u306e\u30a8\u30f3\u30b8\u30cb\u30a2\u30c1\u30fc\u30e0\u304c\u3001Python\u3067Salesforce API\u3092\u5229\u7528\u3059\u308b\u65b9\u6cd5\u3084\u6ce8\u610f\u70b9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002 \u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u8a8d\u8a3c\u65b9\u6cd5\u304b\u3089\u5b9f\u88c5\u4f8b\u3001\u30a8\u30e9\u30fc\u5bfe [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":859,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sfa-support"],"jetpack_featured_media_url":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-content\/uploads\/sites\/14\/2025\/09\/851-min.png","_links":{"self":[{"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/posts\/851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/comments?post=851"}],"version-history":[{"count":3,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/posts\/851\/revisions"}],"predecessor-version":[{"id":860,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/posts\/851\/revisions\/860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/media\/859"}],"wp:attachment":[{"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/media?parent=851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/categories?post=851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fdc-inc.co.jp\/sfsolution\/wp-json\/wp\/v2\/tags?post=851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}