How to test the twitter API locally?

2019-03-14 16:12发布

I'm trying to write a web application that would use Twitter via OAuth.

  1. I run my local server as 'localhost', so I need the callback URL to be something like http://localhost/something/twitter.do but Twitter doesn't like that: Not a valid URL format

  2. I'm probably going to do a lot of tests, but once I've approved my app with my username, I can't test again can I? Am I supposed to create multiple twitter accounts? Or can you remove an app and do it again?

标签: twitter oauth
7条回答
趁早两清
2楼-- · 2019-03-14 16:26

1.) Don't use localhost. That's not helpful. Why not stand up another server instance or get a testing vm slice from slicehost?

2.) You probably want a bunch of different user accounts and a couple different OAuth key/secret credentials for testing.

You were on the right track though: DO test revoking the app's credentials via your twitter account's connections setting. That should happen gracefully. You might want to store a status value alongside the access token information, so you can mark tokens as revoked.

查看更多
Root(大扎)
3楼-- · 2019-03-14 16:28

Twitter's "rate limiting" for API GET calls is based on IP address of the caller. So, you can test your app from your server, using the same IP address, and get (once approved) 15,000 API calls per hour. That means you can pound on your app with many different usernames, as long as your approved IP address remains the same.

When you send the e-mail to Twitter to ask for an increase to your rate limit, you can also ask for the increase to apply to your Twitter username too.

I believe Twitter requires you - if you need to change your IP address, or change the username that is using the app - to send in another request asking for the rate limit increase for that new IP address or username. But, in my experience, Twitter has been pretty quick at turning around these requests (maybe less than 48 hours?).

查看更多
爷、活的狠高调
4楼-- · 2019-03-14 16:41
  1. You can use 127.0.0.1 instead of localhost.

  2. You can authorize your app as many times as you like from the same twitter account without the necessity to revoke it. However, the authenticate action will only prompt for Allow/Deny once and all subsequent authenticate requests will just pass through until you revoke the privilege.

查看更多
We Are One
5楼-- · 2019-03-14 16:46

use like this for Website :http://127.0.0.1 and for callback URL: http://127.0.0.1/home or any of your page address like http://127.0.0.1/index

查看更多
太酷不给撩
6楼-- · 2019-03-14 16:47

Have you tried creating your own caching mechanism? You can take the result of an initial query, cache it on thread local, and given an expiration time, refresh from Twitter. This would allow you to test your app against Twitter data without incurring call penalties.

查看更多
甜甜的少女心
7楼-- · 2019-03-14 16:48

There is also another solution (a workaround, rather) which requires you to edit your hosts file.

Here is how you do it on a linux box:

  1. Open your /etc/hosts file as root. To do this, you can open a terminal and type something like sudo vi /etc/hosts.

  2. Pick a non-existent domain to use as your local address, and add it to your hosts file. For example, you will need to add something similar to the following at the end.

    127.0.0.1 localhost.cep # this domain name was accepted.
    

So, that's pretty much it. Pointing your browser to localhost.cep will now take you to your local server. Hope that helped :)

查看更多
登录 后发表回答