0
A
回答
1
我开始用foursquare4j,但无法得到它成功地检索访问令牌,这是呼吁签署调用Foursquare的API之前所需的最后一步。 因此,我切换到使用signpost来通过认证位,并获得访问令牌和秘密,然后使用foursquare4j,因为它封装了API作为一个非常好的对象模型。 我不知道路标或foursquare4j本质上是线程安全的 - 你可以在他们的论坛中提出这个问题。 下面是我用于验证我的应用程序的代码的扁平版本。 我正在使用Play框架 - authorize()接收初始认证请求,而oauth()是用户一旦允许访问,foursquare重定向到的地方。
public class Foursquare extends Controller {
static final String FOURSQUARE_OAUTH_REQUEST_TOKEN = "http://foursquare.com/oauth/request_token";
static final String FOURSQUARE_OAUTH_ACCESS_TOKEN = "http://foursquare.com/oauth/access_token";
static final String FOURSQUARE_OAUTH_AUTHORIZE = "http://foursquare.com/oauth/authorize";
static final String CONSUMER_KEY = "N4FKW2GFLMU1UGR3DDQYE4IGJQRGID1JFXYPJS3XFLZN3EU6";
static final String CONSUMER_SECRET = "DDGHBF25J3RJDD4N4QC2CMRF8YMA1CG94OGFRPTY4RQNLMVH";
// Handle Request for foursquare Authorization
public static void authorize() throws OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException {
oauth.signpost.OAuthProvider provider = new DefaultOAuthProvider(FOURSQUARE_OAUTH_REQUEST_TOKEN, FOURSQUARE_OAUTH_ACCESS_TOKEN,FOURSQUARE_OAUTH_AUTHORIZE);
oauth.signpost.OAuthConsumer consumer = new DefaultOAuthConsumer(CONSUMER_KEY,CONSUMER_SECRET);
String authURL;
authURL = provider.retrieveRequestToken(consumer,"");
String tokenSecret = consumer.getTokenSecret();
session.put("secret", tokenSecret);
redirect(authURL);
}
// Handle call back from foursquare after user Accepts
public static void oauth() throws IOException, OAuthMessageSignerException, OAuthNotAuthorizedException, OAuthExpectationFailedException, OAuthCommunicationException {
oauth.signpost.OAuthProvider provider = new DefaultOAuthProvider(FOURSQUARE_OAUTH_REQUEST_TOKEN, FOURSQUARE_OAUTH_ACCESS_TOKEN,FOURSQUARE_OAUTH_AUTHORIZE);
oauth.signpost.OAuthConsumer consumer = new DefaultOAuthConsumer(CONSUMER_KEY,CONSUMER_SECRET);
String secret = session.get("secret");
String pinCode = params.get("oauth_token");
consumer.setTokenWithSecret(pinCode, secret);
provider.retrieveAccessToken(consumer, pinCode);
// Get the access token and secret
String token = consumer.getToken();
String tokenSecret = consumer.getTokenSecret();
// Set foursquare4j Credentials
foursquare4j.type.Credentials credentials = new Credentials();
credentials.setTokenSecret(tokenSecret);
credentials.setAccessToken(token);
foursquare4j.oauth.OAuthConsumer newConsumer = new OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
foursquare4j.oauth.FoursquareOAuthImpl fs = new FoursquareOAuthImpl(newConsumer, credentials);
try {
// Get last 50 checkins
Checkins checkins = fs.history("50", "");
render(checkins);
} catch (FoursquareException e) {
e.printStackTrace();
}
}
}
0
嗨安德鲁我几乎完成了为超酷的Play Framework设置模块,通过OAuth与Foursquare对话。
您可以在我的博客http://geeks.aretotally.in或Github https://github.com/feliperazeek/playframework-foursquare上关注进度。
请注意,因为Foursquare很快将OAuth 1关闭,转而使用OAuth 2。
相关问题
- 1. Four Square API应用程序图标
- 2. Four Square - Establishment没有可用的问题
- 3. Four Square Div旋转中心悬停 - 微调板
- 4. Square API + OAuth:如何退出iPad应用程序?
- 5. Square Connect API扣款/争议
- 6. Square连接API沙盒
- 7. Square Connect php API错误
- 8. Python Connect Four游戏
- 9. 使用Oauth获取通过应用程序进行的Square交易列表
- 10. Square connect API - 导航回应用程序
- 11. Square Connect API List Payments Endpoint not displayed'Description'
- 12. 收费时未发现错误Square API
- 13. Square Up API Edge浏览器问题
- 14. 使用Square Connect API添加项目
- 15. Square Connect API - 如何获取location_id?
- 16. Square REST API:发布退款时出错
- 17. Twitter上的OAuth API?
- 18. square Facebook图片
- 19. Kendo Calendar with two-four months view
- 20. 斯卡拉Connect-Four游戏
- 21. OAuth和YouTube API
- 22. PHP OAUTH类API
- 23. oAuth uStream API
- 24. Box API和OAuth
- 25. Magento REST API OAuth
- 26. Twitter API oAUTH
- 27. Google API OAuth 2.0
- 28. Square ImageView
- 29. Square-Connect TransactionId长度
- 30. matlab input-output:convert square inches to square cm?
我在DefaultOAuthProvider和DefaultOAuthConsumer的构造函数的参数中发现了一些变化? – 2011-06-24 12:00:45