`import_data` does not work with Service Accounts due to missing `project_id`
While testing out service accounts, I kept getting Unauthorized, invalid project secret. See docs for more information: https://developer.mixpanel.com/reference/authentication#project-secret raised from the SDK
I ended up tracing this to the SDK never sending the project_id GET paramter to the import. This paramter is marked as required in the documentation.
Trying the following curl command:
curl --request POST \
--url 'https://api.mixpanel.com/import?strict=1' \
--header 'Accept: application/json' \
--header 'Authorization: Basic <omitted>' \
--header 'Content-Type: application/json' \
--data '[{"event":"test"}]'
vs.
curl --request POST \
--url 'https://api.mixpanel.com/import?strict=1&project_id=<omitted>' \
--header 'Accept: application/json' \
--header 'Authorization: Basic <omitted>' \
--header 'Content-Type: application/json' \
--data '[{"event":"test"}]'
...with credentials and with/without a project_id confirms the problem.
In fact: service accounts seem unsupported entirely by this SDK. For example, it does not appear possible to supply a api_secret=<service_account>:<secret> to this SDK, due to the project_id omission and the fact that an additional colon is appended to that string as part of the HTTP Basic auth assembly.
@beheh that is correct, this SDK does not currently support Service Accounts. You can use Service Accounts to import data with our Python utilities library, though: https://github.com/mixpanel/mixpanel-utils