Google App EngineのプロジェクトにSalesforce Bulk APIを使用する予定です。私は、Python salesforce-bulk-apiライブラリを介して、バルクAPIを使用して2つのタスクを作成するために、いくつかの簡単なテストコードを書き始めました:期待と2つのタスクはSalesforceで表示されるローカルにこのコードを実行するSalesforce Bulk API:Google App Engineで実行するとInvalidSessionId(セッションIDを見つけることができません)
from salesforce_bulk_api import SalesforceBulkJob
header = ['WhoId', 'Subject']
messages = [('[...]', 'Test Task 1'),
('[...]', 'Test Task 2')]
os.environ['SALESFORCE_INSTANCE'] = '[...]'
os.environ['SALESFORCE_SECURITY_TOKEN'] = access_token
job = SalesforceBulkJob('insert', 'Task')
job.upload(
header,
messages
)
results = job.results()
for r in results:
print('Result ' + str(r))
で動作します。しかし、Google App Engineでコードを実行すると失敗します。仕事/バッチの詳細は以下のとおりです。私は、ドキュメントに表示されるものと
<error xmlns="http://www.force.com/2009/06/asyncapi/dataload">
<script/>
<exceptionCode>InvalidSessionId</exceptionCode>
<exceptionMessage>Unable to find session id</exceptionMessage>
</error>
は、セッションIDは、ヘッダフィールドX-SFDC-Session
たび経由して送信する必要があります。私はそれを確認して、それはローカルで実行するときだけでなく、Google App Engine経由でも設定されます。次のようなヘッダー:
{ 'Content-Length': '183',
'Accept-Encoding': 'gzip, deflate',
'Accept': '*/*',
'User-Agent': 'python-requests/2.9.1',
'X-SFDC-Session': u'[...]',
'Connection': 'keep-alive',
'Content-Type': u'application/xml; charset=UTF-8'}
この問題をデバッグ/解決する方法のヒントをご存知の方は、ありがとう!
- Manfred
これは引き続き問題ですか? [プロジェクトの問題追跡担当者に報告する]価値があるかもしれません(https://github.com/safarijv/salesforce-bulk-api/issues)。ユニコードに言及した[プルリクエスト](https://github.com/safarijv/salesforce-bulk-api/pull/4)がありますが、これがあなたの問題を解決するかどうかは不明です。 – Adam
あなたはこれを決心しましたか? – NSjonas