Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make curl debug output more user friendly #557

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

danihodovic
Copy link

@danihodovic danihodovic commented Jan 21, 2020

The curl output helps when debugging requests made to the FB API.

However it's not as user friendly as it should be because it retrieves
gzipped content which can't immediately be displayed when running the
curl command in the terminal. See the below post by the curl maintainer
on why binary output is no longer displayed in stdout by default.

https://daniel.haxx.se/blog/2017/06/17/curl-doesnt-spew-binary-anymore/

Instead of displaying binary output I force the API to return
uncompressed JSON which can immediately be displayed when running the
command. See the below two examples.

Without this patch:

$ curl -X GET -H 'Accept: application/json' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: fbbizsdk-python-v5.0.1' 'https://graph.facebook.com/v5.0/me/adaccounts?access_token=xxxxxx&summary=true'
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.

With this patch:

$ curl -X GET -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'User-Agent: fbbizsdk-python-v5.0.1' 'https://graph.facebook.com/v5.0/me/adaccounts?access_token=xxxxxx&summary=true'
{"data":[{"account_id":"abc","id":"act_abc"},"summary":{"total_count":1}}

The curl output helps when debugging requests made to the FB API.

However it's not as user friendly as it should be because it retrieves
gzipped content which can't immediately be displayed when running the
curl command in the terminal. See the below post by the curl maintainer
on why binary output is no longer displayed in stdout by default.

https://daniel.haxx.se/blog/2017/06/17/curl-doesnt-spew-binary-anymore/

Instead of displaying binary output I force the API to return
uncompressed JSON which can immediately be displayed when running the
command. See the below two examples.

Without this patch:
```
$ curl -X GET -H 'Accept: application/json' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: fbbizsdk-python-v5.0.1' 'https://graph.facebook.com/v5.0/me/adaccounts?access_token=xxxxxx&summary=true'
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
```

With this patch:
```
$ curl -X GET -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'User-Agent: fbbizsdk-python-v5.0.1' 'https://graph.facebook.com/v5.0/me/adaccounts?access_token=xxxxxx&summary=true'
{"data":[{"account_id":"abc","id":"act_abc"},"summary":{"total_count":1}}
```
@facebook-github-bot
Copy link

Hi danihodovic! Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file.In order for us to review and merge your code, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

If you have received this in error or have any questions, please contact us at cla@fb.com. Thanks!

@facebook-github-bot
Copy link

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants