[supertweet-twitter-api-oauth-proxy] r10 committed - updates for Twitter API 1.1

39 views
Skip to first unread message

supertweet-twitte...@googlecode.com

unread,
Mar 27, 2013, 2:56:56 PM3/27/13
to supertweet-...@googlegroups.com
Revision: 10
Author: mrblogdotorg
Date: Wed Mar 27 11:56:49 2013
Log: updates for Twitter API 1.1
http://code.google.com/p/supertweet-twitter-api-oauth-proxy/source/detail?r=10

Added:
/trunk/extlib/twitter4j-core-3.0.2.jar
Deleted:
/trunk/extlib/twitter4j-core-2.1.7.jar
Modified:
/trunk/src/neoauthlo/NeoAuthApplication.java
/trunk/src/neoauthlo/resource/ProxyResource.java
/trunk/src/neoauthlo/resource/SetupAccessResource.java

=======================================
--- /dev/null
+++ /trunk/extlib/twitter4j-core-3.0.2.jar Wed Mar 27 11:56:49 2013
Binary file, no diff available.
=======================================
--- /trunk/extlib/twitter4j-core-2.1.7.jar Sat Jan 1 11:25:33 2011
+++ /dev/null
Binary file, no diff available.
=======================================
--- /trunk/src/neoauthlo/NeoAuthApplication.java Wed Jun 29 11:39:19 2011
+++ /trunk/src/neoauthlo/NeoAuthApplication.java Wed Mar 27 11:56:49 2013
@@ -69,89 +69,7 @@
// new instance of a given Resource.
Router router = new Router(getContext());

-
- router.attach("/statuses/update", GeneralAPIProxyResource.class);
- router.attach("/statuses/home_timeline",
GeneralAPIProxyResource.class);
-
- router.attach("/1/statuses/home_timeline",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/user_timeline",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/public_timeline ",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/user_timeline ",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/mentions",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/retweeted_by_me",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/retweeted_to_me",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/retweets_of_me",
GeneralAPIProxyResource.class);
-
- router.attach("/1/statuses/retweet/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/show/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/retweets/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/{id}/retweeted_by",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/{id}/retweeted_by/ids",
GeneralAPIProxyResource.class);
-
- router.attach("/1/users/show", GeneralAPIProxyResource.class);
- router.attach("/1/users/lookup", GeneralAPIProxyResource.class);
- router.attach("/1/users/search", GeneralAPIProxyResource.class);
- router.attach("/1/users/suggestions",
GeneralAPIProxyResource.class);
- router.attach("/1/users/suggestions/{slug}",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/friends",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/friends/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/statuses/followers",
GeneralAPIProxyResource.class);
-
- router.attach("/1/{user}/lists", GeneralAPIProxyResource.class);
- router.attach("/1/{user}/lists/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/{user}/lists/memberships",
GeneralAPIProxyResource.class);
- router.attach("/1/{user}/lists/subscriptions",
GeneralAPIProxyResource.class);
-
- router.attach("/1/{user}/{list_id}/members",
GeneralAPIProxyResource.class);
- router.attach("/1/{user}/{list_id}/subscribers",
GeneralAPIProxyResource.class);
- router.attach("/1/{user}/{list_id}/members/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/{user}/{list_id}/subscribers/{id}",
GeneralAPIProxyResource.class);
-
- router.attach("/1/direct_messages", GeneralAPIProxyResource.class);
- router.attach("/1/direct_messages/sent",
GeneralAPIProxyResource.class);
- router.attach("/1/direct_messages/new",
GeneralAPIProxyResource.class);
- router.attach("/1/direct_messages/destroy/{id}",
GeneralAPIProxyResource.class);
-
- router.attach("/1/friendships/create/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/friendships/destroy/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/friendships/exists",
GeneralAPIProxyResource.class);
- router.attach("/1/friendships/show",
GeneralAPIProxyResource.class);
- router.attach("/1/friendships/incoming",
GeneralAPIProxyResource.class);
- router.attach("/1/friendships/outgoing",
GeneralAPIProxyResource.class);
-
- router.attach("/1/friends/ids", GeneralAPIProxyResource.class);
- router.attach("/1/followers/ids", GeneralAPIProxyResource.class);
-
- router.attach("/1/account/verify_credentials",
GeneralAPIProxyResource.class);
- router.attach("/1/account/rate_limit_status",
GeneralAPIProxyResource.class);
- router.attach("/1/account/update_delivery_device",
GeneralAPIProxyResource.class);
- router.attach("/1/account/update_profile_colors",
GeneralAPIProxyResource.class);
- router.attach("/1/account/update_profile",
GeneralAPIProxyResource.class);
-
- router.attach("/1/favorites", GeneralAPIProxyResource.class);
- router.attach("/1/favorites/create/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/favorites/destroy/{id}",
GeneralAPIProxyResource.class);
-
- router.attach("/1/notifications/follow/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/notifications/leave/{id}",
GeneralAPIProxyResource.class);
-
- router.attach("/1/blocks/create/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/blocks/destroy/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/blocks/exists/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/blocks/blocking", GeneralAPIProxyResource.class);
- router.attach("/1/blocks/blocking/ids",
GeneralAPIProxyResource.class);
-
- router.attach("/1/report_spam", GeneralAPIProxyResource.class);
-
- router.attach("/1/saved_searches", GeneralAPIProxyResource.class);
- router.attach("/1/saved_searches/show/{id}",
GeneralAPIProxyResource.class);
- router.attach("/1/saved_searches/create",
GeneralAPIProxyResource.class);
- router.attach("/1/saved_searches/destroy/{id}",
GeneralAPIProxyResource.class);
-
- router.attach("/1/geo/nearby_places",
GeneralAPIProxyResource.class);
-
- router.attach("/1/statuses/update", GeneralAPIProxyResource.class);
- router.attach("/1/statuses/destroy/{id}",
GeneralAPIProxyResource.class);
+ router.attach("/1.1/",
GeneralAPIProxyResource.class).getTemplate().setMatchingMode(org.restlet.util.Template.MODE_STARTS_WITH);;

// Protected /setup routes
Router srouter = new Router(getContext());
=======================================
--- /trunk/src/neoauthlo/resource/ProxyResource.java Sat Jan 1 11:25:33
2011
+++ /trunk/src/neoauthlo/resource/ProxyResource.java Wed Mar 27 11:56:49
2013
@@ -50,13 +50,6 @@

public class ProxyResource extends BaseResource {

- final private static int JSON = 1;
- final private static int XML = 2;
- final private static int RSS = 3;
- final private static int ATOM = 4;
-
- private int mediaType;
-
private final static Logger logger =
Logger.getLogger(ProxyResource.class.getName());

protected Representation authResult;
@@ -156,20 +149,6 @@
return params;
}

- private MediaType getMediaType() {
- if (mediaType == XML) {
- return MediaType.TEXT_XML;
- } else if (mediaType == JSON) {
- return MediaType.APPLICATION_JSON;
- } else if (mediaType == RSS) {
- return MediaType.APPLICATION_RSS;
- } else if (mediaType == ATOM) {
- return MediaType.APPLICATION_ATOM;
- } else {
- return MediaType.TEXT_PLAIN;
- }
-
- }
private void getToken(DataAccessManager dm, String id) {
aToken = null;
try {
@@ -268,30 +247,9 @@
getResponse().setStatus(status);
String req = getRequest().getResourceRef().getPath();
logError(req, status.getCode(), errmsg);
- if (mediaType == XML || mediaType == RSS || mediaType == ATOM) {
- return new StringRepresentation("<?xml
version=\"1.0\"?>\n<hash>\n<request>" + req + "</request>\n<error>" +
errmsg + "</error>\n</hash>\n", MediaType.TEXT_XML);
- } else if (mediaType == JSON) {
- return new StringRepresentation("{\"request\":\"" + req
+ "\",\"error\":\"" + errmsg + "\"}", MediaType.APPLICATION_JSON);
- } else {
- return new StringRepresentation("REQUEST: " + req + "\nERROR: " +
errmsg + "\n", MediaType.TEXT_PLAIN);
- }
+ return new StringRepresentation("{\"request\":\"" + req
+ "\",\"error\":\"" + errmsg + "\"}", MediaType.APPLICATION_JSON);
}

- protected void domediaType(String req) {
- if (req.endsWith(".xml")) {
- mediaType = XML;
- } else if (req.endsWith(".json")) {
- mediaType = JSON;
- } else if (req.endsWith(".rss")) {
- mediaType = RSS;
- } else if (req.endsWith(".atom")) {
- mediaType = ATOM;
- } else {
- //logger.warning("unknown format: " + req);
- }
- }
-
-
private static UrlEncodedFormEntity mapToFormEntity(final Map<String,
String> fields) throws UnsupportedEncodingException {
final ArrayList<NameValuePair> values = new
ArrayList<NameValuePair>(fields.size());
for (final Entry<String, String> entry : fields.entrySet()) {
@@ -312,7 +270,10 @@

protected Representation doRequest(String method, final Map<String,
String> fields) {
String req = getRequest().getResourceRef().getPath();
- domediaType(req);
+ if (!req.endsWith(".json")) {
+ getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND);
+ return new StringRepresentation("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n<errors>\n <error code=\"34\">Sorry, that page does
not exist</error>\n</errors>", MediaType.APPLICATION_XML);
+ }
if (!isAuthOk()) {
return authResult;
}
@@ -369,11 +330,11 @@
getResponse().setStatus(new Status(statusCode));
InputStream is = request.getErrorStream();
final String data = IOUtils.toString(is);
- return new StringRepresentation(data, getMediaType());
+ return new StringRepresentation(data, MediaType.APPLICATION_JSON);
} else {
InputStream is = request.getInputStream();
final String data = IOUtils.toString(is);
- return new StringRepresentation(data, getMediaType());
+ return new StringRepresentation(data, MediaType.APPLICATION_JSON);
}
} catch (Exception e) {
e.printStackTrace();
@@ -389,8 +350,9 @@

protected Representation doPostRequest(final Map<String, String> fields) {
String req = getRequest().getResourceRef().getPath();
- domediaType(req);
-
+ if (!req.endsWith(".json")) {
+ return new StringRepresentation("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n<errors>\n <error code=\"34\">Sorry, that page does
not exist</error>\n</errors>", MediaType.APPLICATION_XML);
+ }
if (!isAuthOk()) {
return authResult;
}
@@ -441,7 +403,7 @@
getResponse().setStatus(new Status(c));
logError(req, c, "Twitter API:" + st.getReasonPhrase() +
data.replaceAll("\n", "") + " fields: " + fields);
}
- return new StringRepresentation(data, getMediaType());
+ return new StringRepresentation(data, MediaType.APPLICATION_JSON);
} catch (Exception e) {
e.printStackTrace();
return errorRepresentation(Status.SERVER_ERROR_INTERNAL,
e.getMessage());
=======================================
--- /trunk/src/neoauthlo/resource/SetupAccessResource.java Wed Jun 29
11:39:19 2011
+++ /trunk/src/neoauthlo/resource/SetupAccessResource.java Wed Mar 27
11:56:49 2013
@@ -22,8 +22,8 @@
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.User;
-import twitter4j.http.AccessToken;
-import twitter4j.http.RequestToken;
+import twitter4j.auth.RequestToken;
+import twitter4j.auth.AccessToken;

public class SetupAccessResource extends SetupResource {

@@ -86,13 +86,13 @@
//persist the accessToken for future reference.
logger.info("saving access token");
DataAccessManager dm = new DataAccessManager();
- int id = accessToken.getUserId();
+ long id = accessToken.getUserId();
logger.info("accessToken.getUserId()=" + id);
//boolean firstTimeUser = !dm.existsOAuthAccessToken(id+"");
dm.storeOAuthAccessToken(id+"", accessToken.getToken(),
accessToken.getTokenSecret());
String screenName = user.getScreenName();
logger.info("screenName: " + screenName);
- dm.storeScreennameMap(screenName, id);
+ dm.storeScreennameMap(screenName, id+"");
final String passwd = fields.get("passwd");
UserInfo u = dm.getUserInfoByScreenname(screenName);
String sid = user.getId()+"";
Reply all
Reply to author
Forward
0 new messages