├── LICENSE ├── README.md ├── facebook ├── README.md ├── examples │ └── FlexExample.mxml └── images │ ├── 1.png │ └── 2.png ├── google ├── README.md ├── examples │ └── FlexExample.mxml └── images │ ├── 1.png │ └── 2.png ├── instagram ├── README.md └── examples │ └── FlexExample.mxml └── twitter ├── README.md ├── examples ├── FlexExample.mxml └── isle │ └── susisu │ └── twitter │ ├── Twitter.as │ ├── TwitterRequest.as │ ├── TwitterStream.as │ ├── TwitterStreamStatus.as │ ├── TwitterTokenSet.as │ ├── api │ ├── FALSE.as │ ├── TRUE.as │ ├── TwitterURL.as │ ├── _account_getSettings.as │ ├── _account_removeProfileBanner.as │ ├── _account_settings.as │ ├── _account_updateDeliveryDevice.as │ ├── _account_updateProfile.as │ ├── _account_updateProfileBackgroundImage.as │ ├── _account_updateProfileBanner.as │ ├── _account_updateProfileColors.as │ ├── _account_updateProfileImage.as │ ├── _account_verifyCredentials.as │ ├── _application_rateLimitStatus.as │ ├── _blocks_create.as │ ├── _blocks_destroy.as │ ├── _blocks_ids.as │ ├── _blocks_list.as │ ├── _directMessages.as │ ├── _directMessages_destroy.as │ ├── _directMessages_new.as │ ├── _directMessages_sent.as │ ├── _directMessages_show.as │ ├── _favorites_create.as │ ├── _favorites_destroy.as │ ├── _favorites_list.as │ ├── _followers_ids.as │ ├── _followers_list.as │ ├── _friends_ids.as │ ├── _friends_list.as │ ├── _friendships_create.as │ ├── _friendships_destroy.as │ ├── _friendships_incoming.as │ ├── _friendships_lookup.as │ ├── _friendships_outgoing.as │ ├── _friendships_show.as │ ├── _friendships_update.as │ ├── _geo_id.as │ ├── _geo_place.as │ ├── _geo_reverseGeocode.as │ ├── _geo_search.as │ ├── _geo_similarPlaces.as │ ├── _help_configuration.as │ ├── _help_languages.as │ ├── _help_privacy.as │ ├── _help_tos.as │ ├── _lists_create.as │ ├── _lists_destroy.as │ ├── _lists_list.as │ ├── _lists_members.as │ ├── _lists_members_create.as │ ├── _lists_members_createAll.as │ ├── _lists_members_destroy.as │ ├── _lists_members_destroyAll.as │ ├── _lists_members_show.as │ ├── _lists_memberships.as │ ├── _lists_show.as │ ├── _lists_statuses.as │ ├── _lists_subscribers.as │ ├── _lists_subscribers_create.as │ ├── _lists_subscribers_destroy.as │ ├── _lists_subscribers_show.as │ ├── _lists_subscriptions.as │ ├── _lists_update.as │ ├── _oauth_accessToken.as │ ├── _oauth_requestToken.as │ ├── _savedSearches_create.as │ ├── _savedSearches_destroy.as │ ├── _savedSearches_list.as │ ├── _savedSearches_show.as │ ├── _search_tweets.as │ ├── _statuses_destroy.as │ ├── _statuses_homeTimeline.as │ ├── _statuses_mentionsTimeline.as │ ├── _statuses_oembed.as │ ├── _statuses_retweet.as │ ├── _statuses_retweets.as │ ├── _statuses_retweetsOfMe.as │ ├── _statuses_show.as │ ├── _statuses_update.as │ ├── _statuses_updateWithMedia.as │ ├── _statuses_userTimeline.as │ ├── _trends_available.as │ ├── _trends_closest.as │ ├── _trends_place.as │ ├── _user.as │ ├── _users_contributees.as │ ├── _users_contributors.as │ ├── _users_lookup.as │ ├── _users_profileBanner.as │ ├── _users_reportSpam.as │ ├── _users_search.as │ ├── _users_show.as │ ├── _users_suggestions.as │ ├── _users_suggestionsSlug.as │ └── _users_suggestions_members.as │ ├── events │ ├── TwitterErrorEvent.as │ ├── TwitterRequestEvent.as │ └── TwitterStreamEvent.as │ └── utils │ ├── MultipartFormData.as │ ├── encodeText.as │ ├── getOAuthParameters.as │ ├── makeAuthorizationHeader.as │ ├── makeNonce.as │ ├── makeOAuthSignature.as │ ├── mergeObjects.as │ ├── objectToQueryString.as │ ├── objectToSortedQueryString.as │ └── objectToURLRequestHeaders.as └── images └── 1.png /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Phantom App Development 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Social Media in Adobe AIR 2 | 3 | This repository contains guides that allow your Adobe AIR applications to interact with social media networks. 4 | 5 | This can be accomplished by just using `StageWebView` and `URLRequest`, this method doesn't require an `ANE`. 6 | 7 | Some examples of what you can achieve are: 8 | 9 | * Send a tweet on behalf the user. 10 | * Allow the user to Like/Share your app. 11 | * Load a user profile information (name, profile picture, email address, friend list). 12 | 13 | ## Getting Started 14 | 15 | Before you start you will require: 16 | 17 | * A valid cellphone number. Registration in the Facebook, Twitter and Google developer portals require a cellphone number where they can confirm your account by SMS. 18 | * The Adobe AIR SDK, preferably a recent version. 19 | * The [AS3 Crypto](http://crypto.hurlant.com/demo/as3crypto.swc) library. 20 | 21 | These guides are compatible with the Apache Flex SDK, Starling Framework and pure AS3 in both Desktop and Mobile projects. The examples are provided for all 3 frameworks and are designed to be easily copied and pasted. You can access these examples with their respective guides by browsing this repository. 22 | 23 | These guides do not work in Flash Player projects because it doesn't support the StageWebView API. If you wish to integrate social media in your Flash Player project you can do it by using their JavaScript libraries and using the `ExternalInterface` API. 24 | 25 | ## Introduction to OAuth 26 | 27 | The OAuth protocol allows third party applications to interact securely with private resources without exposing the logged user credentials. 28 | 29 | The standard workflow is as follows: 30 | 31 | 1. The user wants to access some feature in your app that require a log-in. 32 | 33 | 2. The user is presented with a Sign-In button and presses it. 34 | 35 | 3. A modal window appears (Pop-Up) with a web browser inside (StageWebView) where the user must enter their username and password and allow the permissions the app requested. 36 | 37 | 4. Once the user has successfully logged in, the web browser will be redirected to a 'Success' page that will contain a token/code. 38 | 39 | 5. The app will need to grab said code and perform an `URLRequest` to the OAuth server where the code will be exchanged for an Access Token. 40 | 41 | 6. Once the app has gotten the Access Token, it will be used to interact with private resources, such as fetching friends lists, users profiles and more. 42 | 43 | This workflow varies a bit on each social network, the differences will be outlined in their respective guides. 44 | Each social network guide is separated into their own folder, feel free to read them in any order. 45 | 46 | ## Glossary 47 | 48 | Name | Description 49 | ---|--- 50 | ``StageWebView`` | An Adobe AIR component that allows applications to show an embedded web browser. 51 | ``URLRequest`` | An ActionScript 3 class for creating and sending requests to external resources, such as web servers. 52 | ``App ID`` | A string unique to your application that identifies it to the OAuth server. Used as a parameter in a Request Token. 53 | ``Scope`` | A parameter in a Request Token that contains the permissions the app requires. 54 | ``Redirect URI/URL`` | A location where the StageWebView will be redirected upon a successful authorization. This location will contain a code/token that will be retrieved for creating a Token Request. 55 | ``OOB`` | Out-of-bounds, a special OAuth parameter that indicates that a PIN-less authorization is requested. 56 | ``Request Token`` | A string containing several parameters which will be exchanged for an Access Token. 57 | ``Access Token`` | An alphanumeric string that is used as a parameter in URLRequests to access private resources. 58 | 59 | ## Donations 60 | 61 | Feel free to support the development of free guides and examples. Your donations are greatly appreciated. 62 | 63 | [![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MQPLL355ZAKXW) 64 | -------------------------------------------------------------------------------- /facebook/README.md: -------------------------------------------------------------------------------- 1 | # Facebook 2 | 3 | **ATTENTION: THIS GUIDE DOESN't WORK IN MOBILE DEVICES, PLEASE USE THE [FIREBASE FACEBOOK AUTH GUIDE](https://github.com/PhantomAppDevelopment/firebase-as3/tree/master/auth/facebook) INSTEAD** 4 | 5 | Integrating Facebook API functionality in your application doesn't require external libraries. 6 | 7 | ## Getting Started 8 | 9 | 1. Register in the [Facebook Developer portal](https://developers.facebook.com/). You may be asked to provide a valid cell phone number to complete your registration. 10 | 11 | 2. Once registered, locate a drop-down list in the top right and click on it. At the middle it will be an option to `Add a New App`. 12 | 13 | 3. You will be presented with 4 options, select `Website` (even if you are developing an Android or iOS app). We can later add the other platforms when we are ready for deployment. 14 | 15 | 4. Click the button that says `Skip and Create App ID`. A form will appear where you have to provide your app details, once finished click the `Create App ID` button. 16 | 17 | ![Correct Settings](./images/1.png) 18 | 19 | 5. You will be redirected to your Dashboard, click the Get Started button next to the Facebook Login option. 20 | 21 | 6. You will be asked to `Choose a Platform`. Select `Other`. 22 | 23 | 7. Configure the OAuth settings similar to the next image. Set the redirect URI to: `https://www.facebook.com/connect/login_success.html` and press the Save Changes button. 24 | 25 | 26 | ![Correct Settings](./images/2.png) 27 | 28 | 8. Click Settings in the left side menu. You will be presented with a screen with your `App ID` and `App Secret`, you will be required to provide your Facebook password to see the `App Secret`. 29 | 9. Once authorized, copy down your `App ID` and `App Secret`. We are going to use them in a later step. 30 | 31 | At this point the Facebook API will only work with your own Facebook Account, in order for it to work on any account you need to switch your app status from `development` to `public`. 32 | 33 | 8. If you are still in the `Dashboard` click the `App Review` option in the left side. 34 | 35 | 9. In the `Make [Your App Name] public?` section turn it to `Yes`. A pop-up will appear asking if you want to make your app public, click the `Confirm` button. 36 | 37 | With these settings your app will only be allowed to do basic reading operations with the Facebook API. If you want to do writing operations such as `Liking` and `Posting` to the user wall you must submit your app for review. 38 | 39 | ## Implementation 40 | 41 | Open or create a new project. 42 | 43 | Open the file where you want to implement the Sign-In feature. 44 | 45 | Add the following constants and variables: 46 | 47 | ```actionscript 48 | private static const CLIENT_ID:String = "Your own Client ID"; 49 | private static const CLIENT_SECRET:String = "Your own Client Secret"; 50 | 51 | private var webView:StageWebView; 52 | private var code:String; 53 | private var access_token:String; 54 | private var accessTokenLoader:URLLoader; 55 | private var profileLoader:URLLoader; 56 | ``` 57 | Add a button and assign an `EventListener` to it when it gets pressed. The code of the EventListener should be as follows: 58 | 59 | ```actionscript 60 | private function initSignIn():void 61 | { 62 | webView = new StageWebView(true); 63 | webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE, changeLocation); 64 | webView.stage = this.stage; 65 | webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight); 66 | webView.loadURL("https://www.facebook.com/dialog/oauth?client_id="+CLIENT_ID+"&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=email"); 67 | } 68 | ``` 69 | 70 | We initialized a `StageWebView` instance, set its dimensions to match the stage size. We crafted a special URL that contains several parameters: 71 | 72 | * scope: The permissions we require from the OAuth server, in this case we require the user email address. 73 | 74 | * redirect_uri: We provided a special url from Facebook which will contain the response `code`. 75 | 76 | * client_id: Your Client ID. 77 | 78 | ```actionscript 79 | private function changeLocation(event:LocationChangeEvent):void 80 | { 81 | var location:String = webView.location; 82 | 83 | if(location.indexOf("code=") != -1 && location.indexOf("error") == -1){ 84 | webView.dispose(); 85 | code = location.substr(location.indexOf("code=")+5, location.length); 86 | getAccessToken(); 87 | } 88 | } 89 | ``` 90 | 91 | We start listening for a `LocationChange` event (every time the web browser changes its web page), once a web page contains the `code` parameter in its URL we dispose the StageWebView and extract the parameter to a variable. 92 | 93 | Then we called a custom function `getAccessToken()` where we are going to create an `URLRequest` to exchange the `code` for an `access_token`. 94 | 95 | ```actionscript 96 | private function getAccessToken():void 97 | { 98 | var request:URLRequest = new URLRequest("https://graph.facebook.com/v2.3/oauth/access_token?client_id="+CLIENT_ID+"&redirect_uri=https://www.facebook.com/connect/login_success.html&client_secret="+CLIENT_SECRET+"&code="+code); 99 | 100 | accessTokenLoader = new URLLoader(); 101 | accessTokenLoader.addEventListener(Event.COMPLETE, accessTokenReceived); 102 | accessTokenLoader.load(request); 103 | } 104 | ``` 105 | 106 | We sent all the parameters in a `GET` request and added an `EventListener` which will contain the `access_token`. 107 | 108 | ```actionscript 109 | private function accessTokenReceived(event:Event):void 110 | { 111 | var rawData:Object = JSON.parse(String(event.currentTarget.data)); 112 | access_token = rawData.access_token; 113 | 114 | loadProfileInfo(); 115 | } 116 | ``` 117 | 118 | We converted the response from the `URLRequest` into a `JSON` object and took the `access_token` value and set it into a String. 119 | 120 | With the `access_token` we can connect to the [Facebook Graph API](https://developers.facebook.com/docs/graph-api) very easily, for example we are going to load the logged-in user profile information. 121 | 122 | 123 | ```actionscript 124 | private function loadProfileInfo():void 125 | { 126 | profileLoader = new URLLoader(); 127 | profileLoader.addEventListener(Event.COMPLETE, profileLoaded); 128 | profileLoader.load(new URLRequest("https://graph.facebook.com/me/?access_token="+access_token+"&fields=name,email,picture.type(large)")); 129 | } 130 | 131 | private function profileLoaded(event:Event):void 132 | { 133 | trace(event.currentTarget.data); 134 | } 135 | ``` 136 | 137 | Note that we needed to specify which fields we need from the API, in this case we asked for the user `name`, `email` and `picture`. -------------------------------------------------------------------------------- /facebook/examples/FlexExample.mxml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /facebook/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhantomAppDevelopment/socialmedia-as3/4a2f367771ef1c25b87f42305252df33d3e0df9d/facebook/images/1.png -------------------------------------------------------------------------------- /facebook/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhantomAppDevelopment/socialmedia-as3/4a2f367771ef1c25b87f42305252df33d3e0df9d/facebook/images/2.png -------------------------------------------------------------------------------- /google/README.md: -------------------------------------------------------------------------------- 1 | # Google 2 | 3 | Integrating Google Accounts (Gmail, Google+, Youtube, Google Apps) functionality in your application doesn't require external libraries. 4 | 5 | The new OAuth requirements from Google don't allow the use of a `WebView` anymore. To solve this issue we are going to use one of their recommended methods, the `Loopback IP address`. 6 | 7 | In this method, the user is presented with a login button, once the user clicks the button we open an authorization website in the default web browser and start a local server. 8 | Once the user has finished authorizing our app, the OAuth server will connect to our server and send the `authorization_code` over a `Socket`. 9 | 10 | In this step we need to write a message to the auth website telling the user that their authorization was successful and they need to go back to our application. 11 | 12 | This method can be achieved using the Adobe AIR `Socket` and `ServerSocket` classes. 13 | 14 | ## Getting Started 15 | 16 | 1. Register in the [Google Developer console](https://console.developers.google.com/). You may be asked to provide a valid telephone number to complete your registration. 17 | 18 | 2. Once registered, locate a drop-down list in the top and click on it. At the bottom it will be an option to Create a Project. 19 | 20 | 3. Type a name for your project and save it. 21 | 22 | 4. On the left side you will see a button with 3 lines, click it and then select `API Manager`. 23 | 24 | 5. Select `Credentials` and then click in the `OAuth Consent Screen` tab. Type a product name and save it. 25 | 26 | ![Correct Settings](./images/1.png) 27 | 28 | 6. Go to the `Credentials` tab, press the `Create Credentials` drop down list and select `OAuth client ID`. In Application Type select `Other`, type a name and save it. 29 | 30 | 7. A window will appear with your `Client ID` and `Client Secret`, copy them down and click Ok. 31 | 32 | 8. In the left side, click `Overview` and a list of APIs will appear in the right. Search the Google+ API and click it. 33 | 34 | 9. Click the `Enable` button and wait until the API is enabled. 35 | 36 | ![Enable Button](./images/2.png) 37 | 38 | If you want to interact with other Google APIs in your application you will have to repeat the last two steps for each one. 39 | 40 | ## Implementation 41 | 42 | Open or create a new project. 43 | 44 | Open the file where you want to implement the Sign-In feature. 45 | 46 | Add the following constants and variables: 47 | 48 | ```actionscript 49 | private static const CLIENT_ID:String = "Your own Client ID"; 50 | private static const CLIENT_SECRET:String = "Your own Client Secret"; 51 | 52 | private var redirect_uri:String = "http://[::1]:9005"; 53 | private var serverSocket:ServerSocket; 54 | private var clientSocket:Socket; 55 | ``` 56 | 57 | Add a button and assign an `EventListener` to it when it gets pressed. The code of the EventListener should be as follows: 58 | 59 | ```actionscript 60 | private function initSignIn():void 61 | { 62 | serverSocket = new ServerSocket(); 63 | serverSocket.addEventListener( flash.events.Event.CONNECT, connectHandler); 64 | 65 | serverSocket.bind(9005, "::"); 66 | serverSocket.listen(); 67 | 68 | var request:URLRequest = new URLRequest("https://accounts.google.com/o/oauth2/v2/auth?scope=email%20profile&" + 69 | "response_type=code&redirect_uri=" + redirect_uri + "&client_id=" + CLIENT_ID); 70 | 71 | navigateToURL(request); 72 | } 73 | ``` 74 | 75 | We instantiated a `ServerSocket` and bound it to the same `IP` and `Port` number as our `redirect_uri` variable. We also added an EventListener for when the ServerSocket gets an incoming connection. 76 | The IPv6 address provided is a wildcard that will listen to all IPv6 connections. 77 | We then opened the default web browser with a URL containing the following parameters: 78 | 79 | Name | Description 80 | ---|--- 81 | `scope` | The permissions we need from Google, in this case `email` and `profile` 82 | `response_type` | The type of response we want, in this case the value will be `code` 83 | `redirect_uri` | The IP and Port we are going to listen, it can be any value but we are going to use `http://[::1]:9005` 84 | `client_id` | The OAuth Client ID you copied from the Google API console. 85 | 86 | Now, we add a `ServerSocketConnectEvent` which will listen when a client connection starts and add a `ProgressEvent.SOCKET_DATA` to each client it connects with. Since we expect only one client connection we will be using the `clientSocket` member variable we declared at the beginning. 87 | 88 | ```actionscript 89 | private function connectHandler(event:ServerSocketConnectEvent):void 90 | { 91 | clientSocket = event.socket; 92 | clientSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); 93 | } 94 | ``` 95 | 96 | Now we are going to listen to all the incoming traffic from the connected client. We are going to detect if the messages contain the `authorization_code`. 97 | 98 | ```actionscript 99 | private function socketDataHandler(event:ProgressEvent):void 100 | { 101 | clientSocket = event.currentTarget as Socket; 102 | 103 | var message:String = clientSocket.readUTFBytes(clientSocket.bytesAvailable); 104 | 105 | if(message.indexOf("GET /?code") == 0) 106 | { 107 | var startIndex:int = message.indexOf("?code=")+6; 108 | var endIndex:int = message.indexOf("HTTP/1.1")-12; 109 | var myCode:String = message.substr(startIndex, endIndex); 110 | 111 | exchangeCode(myCode); 112 | 113 | clientSocket.writeUTFBytes("

You have been successfully authenticated. Please return back to the application.

"); 114 | clientSocket.flush(); 115 | clientSocket.close(); 116 | 117 | } else { 118 | //Code not found 119 | } 120 | } 121 | ``` 122 | 123 | If we find the `authorization_code` we parse it and terminate the socket connection with a success message. You can customize the success message with any HTML content you desire. 124 | 125 | It's time to exchange the `authorization_code` for an `access_token` which will allow us to consume the Google APIs on behalf the user. 126 | 127 | ```actionscript 128 | private function exchangeCode(code:String):void 129 | { 130 | var urlVars:URLVariables = new URLVariables(); 131 | urlVars.code = code; 132 | urlVars.client_id = CLIENT_ID; 133 | urlVars.client_secret = CLIENT_SECRET; 134 | urlVars.redirect_uri = redirect_uri; 135 | urlVars.grant_type = "authorization_code"; 136 | 137 | var request:URLRequest = new URLRequest("https://www.googleapis.com/oauth2/v4/token"); 138 | request.method = URLRequestMethod.POST; 139 | request.data = urlVars; 140 | 141 | var loader:URLLoader = new URLLoader(); 142 | loader.addEventListener(flash.events.Event.COMPLETE, codeExchanged); 143 | loader.load(request); 144 | } 145 | ``` 146 | 147 | We sent an `URLRequest` with the following parameters via `POST`: 148 | 149 | Name | Description 150 | ---|--- 151 | `code` | The `authorization_code` parsed from the client Socket. 152 | `client_id` | The OAuth Client ID you copied from the Google API console. 153 | `client_secret` | The OAuth Client Secret you copied from the Google API console. 154 | `redirect_uri` | We will reuse the same `redirect_uri` from the beginning. 155 | `grant_type` | With the value `authorization_code` 156 | 157 | We will receive a `JSON` response with several values. One of them will be the `access_token`. We are going to test it by retrieving the logged in user basic profile information. 158 | 159 | ```actionscript 160 | private function codeExchanged(event:flash.events.Event):void 161 | { 162 | var rawData:Object = JSON.parse(String(event.currentTarget.data)); 163 | loadProfileInfo(rawData.access_token); 164 | } 165 | 166 | private function loadProfileInfo(access_token:String):void 167 | { 168 | var loader:URLLoader = new URLLoader(); 169 | loader.addEventListener(flash.events.Event.COMPLETE, profileLoaded); 170 | loader.load(new URLRequest("https://www.googleapis.com/plus/v1/people/me?access_token="+access_token)); 171 | } 172 | 173 | private function profileLoaded(event:flash.events.Event):void 174 | { 175 | trace(event.currentTarget.data); 176 | } 177 | ``` 178 | 179 | You can check a list of all Scopes in the [OAuth 2.0 Scopes for Google APIs.](https://developers.google.com/identity/protocols/googlescopes#plusv1) 180 | 181 | Remember to Enable the corresponding APIs in the [Google Developer console](https://console.developers.google.com/). 182 | 183 | 184 | -------------------------------------------------------------------------------- /google/examples/FlexExample.mxml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |

You have been successfully authenticated. Please return back to the application.

"); 52 | clientSocket.flush(); 53 | clientSocket.close(); 54 | 55 | } else { 56 | //Code not found 57 | } 58 | } 59 | 60 | private function exchangeCode(code:String):void 61 | { 62 | var urlVars:URLVariables = new URLVariables(); 63 | urlVars.code = code; 64 | urlVars.client_id = CLIENT_ID; 65 | urlVars.client_secret = CLIENT_SECRET; 66 | urlVars.redirect_uri = redirect_uri; 67 | urlVars.grant_type = "authorization_code"; 68 | 69 | var request:URLRequest = new URLRequest("https://www.googleapis.com/oauth2/v4/token"); 70 | request.method = URLRequestMethod.POST; 71 | request.data = urlVars; 72 | 73 | var loader:URLLoader = new URLLoader(); 74 | loader.addEventListener(flash.events.Event.COMPLETE, codeExchanged); 75 | loader.load(request); 76 | } 77 | 78 | private function codeExchanged(event:flash.events.Event):void 79 | { 80 | var rawData:Object = JSON.parse(String(event.currentTarget.data)); 81 | loadProfileInfo(rawData.access_token); 82 | } 83 | 84 | private function loadProfileInfo(access_token:String):void 85 | { 86 | var loader:URLLoader = new URLLoader(); 87 | loader.addEventListener(flash.events.Event.COMPLETE, profileLoaded); 88 | loader.load(new URLRequest("https://www.googleapis.com/plus/v1/people/me?access_token="+access_token)); 89 | } 90 | 91 | private function profileLoaded(event:flash.events.Event):void 92 | { 93 | trace(event.currentTarget.data); 94 | } 95 | 96 | ]]> 97 |
98 |
-------------------------------------------------------------------------------- /google/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhantomAppDevelopment/socialmedia-as3/4a2f367771ef1c25b87f42305252df33d3e0df9d/google/images/1.png -------------------------------------------------------------------------------- /google/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhantomAppDevelopment/socialmedia-as3/4a2f367771ef1c25b87f42305252df33d3e0df9d/google/images/2.png -------------------------------------------------------------------------------- /instagram/README.md: -------------------------------------------------------------------------------- 1 | # Instagram 2 | 3 | Integrating Instagram functionality in your application doesn't require external libraries. 4 | 5 | ## Getting Started 6 | 7 | 1. Register in the [Instagram Developer Portal](https://www.instagram.com/developer/register/). You may be asked to provide a valid telephone number to complete your registration. 8 | 9 | 2. On the top menu click the button that says `Manage Clients`, then click the `Register a New Client` button. 10 | 11 | 3. Fill the form with your app information, make sure to fill every field since they are required for a later step. When you reach the `Valid redirect URIs`, you can provide an URI which contains a blank webpage. 12 | 13 | 4. Once you have submitted the form you will be presented with a box containing your app information. Copy down your `CLIENT ID`. 14 | 15 | 5. Click again on the `Manage Clients` button, you will see your newly created app in there. Click the `Manage` button and copy down your `App Secret`. 16 | 17 | ## Implementation 18 | 19 | Open or create a new project. 20 | 21 | Open the file where you want to implement the Sign-In feature. 22 | 23 | Add the following constants and variables: 24 | 25 | ```actionscript 26 | private static const CLIENT_ID:String = "Your own Client ID"; 27 | private static const CLIENT_SECRET:String = "Your own Client Secret"; 28 | private static const REDIRECT_URI:String = "Your own Redirect URI"; 29 | 30 | private var webView:StageWebView; 31 | private var code:String; 32 | private var accessTokenLoader:URLLoader; 33 | ``` 34 | 35 | Add a button and assign an `EventListener` to it when it gets pressed. The code of the EventListener should be as follows: 36 | 37 | ```actionscript 38 | private function initSignIn():void 39 | { 40 | webView = new StageWebView(true); 41 | webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE, changeLocation); 42 | webView.stage = this.stage; 43 | webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight); 44 | webView.loadURL("https://api.instagram.com/oauth/authorize/?client_id="+CLIENT_ID+"&redirect_uri="+REDIRECT_URI+"&response_type=code"); 45 | } 46 | ``` 47 | 48 | We initialized a StageWebView instance, set its dimensions to match the stage size. We crafted a special URL that contains several parameters: 49 | 50 | * `client_id`: Your Client ID. 51 | * `redirect_uri`: Is the same `redirect_uri` we provided in the previous form. 52 | * `response_type`: We only require a `code` as a response. 53 | 54 | ```actionscript 55 | private function changeLocation(event:LocationChangeEvent):void 56 | { 57 | var pageTitle:String = webView.title; 58 | 59 | if(pageTitle.indexOf("code=") != -1){ 60 | webView.dispose(); 61 | code = pageTitle.substr(pageTitle.indexOf("code=")+5, pageTitle.length); 62 | 63 | getAccessToken(); 64 | } 65 | } 66 | ``` 67 | 68 | We start listening for a `LocationChange` event (every time the web browser changes its web page), once a web page contains the `code` parameter in its Title we dispose the StageWebView and extract the parameter to a variable. 69 | 70 | Then we called a custom function `getAccessToken()` where we are going to create an `URLRequest` to exchange the `code` for an `access_token`. 71 | 72 | ```actionscript 73 | private function getAccessToken():void 74 | { 75 | var urlVars:URLVariables = new URLVariables(); 76 | urlVars.code = code; 77 | urlVars.client_id = CLIENT_ID; 78 | urlVars.client_secret = CLIENT_SECRET; 79 | urlVars.redirect_uri = REDIRECT_URI; 80 | urlVars.grant_type = "authorization_code"; 81 | 82 | var request:URLRequest = new URLRequest("https://api.instagram.com/oauth/access_token"); 83 | request.method = URLRequestMethod.POST; 84 | request.data = urlVars; 85 | 86 | accessTokenLoader = new URLLoader(); 87 | accessTokenLoader.addEventListener(Event.COMPLETE, accessTokenReceived); 88 | accessTokenLoader.load(request); 89 | } 90 | ``` 91 | 92 | We sent all the parameters in a `POST` request and added an `EventListener` which will contain the `access_token` and the basic logged in user profile information. 93 | 94 | ```actionscript 95 | private function accessTokenReceived(event:Event):void 96 | { 97 | trace(event.currentTarget.data); 98 | var rawData:Object = JSON.parse(String(event.currentTarget.data)); 99 | } 100 | ``` 101 | 102 | You may have noticed that there is a message saying the app is in `Sandbox Mode`. This means only you and preselected users can make use of the Instagram API. 103 | 104 | In order to make your app work with any Instagram user you must submit it for review. 105 | 106 | -------------------------------------------------------------------------------- /instagram/examples/FlexExample.mxml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /twitter/README.md: -------------------------------------------------------------------------------- 1 | # Twitter 2 | 3 | Integrating Twitter functionality in your application requires the following libraries: 4 | 5 | * A special version of [Twitter for AS3](https://github.com/susisu/Twitter-for-AS3) that supports PIN-less authorization (I included it for your convenience). 6 | 7 | * [AS3 Crypto.](http://crypto.hurlant.com/demo/as3crypto.swc) 8 | 9 | * An empty HTML file that can be reliable accessed over the internet. 10 | 11 | ## Getting Started 12 | 13 | 1. Register in the [Twitter Developer portal](https://dev.twitter.com). You may be asked to provide a valid cellphone number to complete your registration. 14 | 15 | 2. Once registered locate a button that says `Create New App` and click it. 16 | 17 | 3. Fill all the fields as normally. Once you reach the Callback URL, provide the URL of the empty HTML file you have hosted. For example: `http://phantom.im/examples.html` 18 | 19 | 4. Go to the Settings tab and make sure these two options are checked: 20 | 21 | * Enable Callback Locking (It is recommended to enable callback locking to ensure apps cannot overwrite the callback url) 22 | * Allow this application to be used to Sign in with Twitter 23 | 24 | 5. Go to the 'Keys and Access Tokens' tab and copy down your Consumer Key and Consumer Secret. 25 | 26 | ![Correct Settings](./images/1.png) 27 | 28 | ## Implementation 29 | 30 | Open or create a new project and import `Twitter for AS3` and `AS3 Crypto`. 31 | 32 | Open the file where you want to implement the Sign-In feature. 33 | 34 | Add the following constants and variables: 35 | 36 | ```actionscript 37 | private static const CONSUMER_KEY:String = "Your Consumer Key"; 38 | private static const CONSUMER_SECRET:String = "Your Consumer Secret"; 39 | 40 | private var webView:StageWebView; 41 | private var twitter:Twitter; 42 | private var credentialsRequest:TwitterRequest; 43 | ``` 44 | Add a button and assign an `EventListener` to it when it gets pressed. The code of the EventListener should be as follows: 45 | 46 | ```actionscript 47 | private function initSignIn():void 48 | { 49 | twitter = new Twitter(CONSUMER_KEY, CONSUMER_SECRET); 50 | 51 | var rtRequest:TwitterRequest = twitter.oauth_requestToken("http://phantom.im/example.html"); 52 | rtRequest.addEventListener(TwitterRequestEvent.COMPLETE, requestComplete); 53 | } 54 | ``` 55 | 56 | The URL must be the same as the one in the Twitter Developer portal. We now need to add the `requestComplete` function. 57 | 58 | ```actionscript 59 | private function requestComplete(event:TwitterRequestEvent):void 60 | { 61 | webView = new StageWebView(true); 62 | webView.stage = this.stage; 63 | webView.viewPort = new Rectangle(0, 0, this.stage.stageWidth, this.stage.stageHeight); 64 | webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE, locationChange); 65 | webView.loadURL(twitter.getOAuthAuthorizeURL()); 66 | } 67 | ``` 68 | 69 | We initialized a `StageWebView` instance, set its dimensions to match the stage size and assigned the URL provided by the Twitter API. Now we are going to retrieve a token located in the URL. 70 | 71 | ```actionscript 72 | private function locationChange(event:LocationChangeEvent):void 73 | { 74 | var url:String = webView.location; 75 | 76 | if(url.indexOf("oauth_verifier=") != -1){ 77 | webView.dispose(); 78 | 79 | var verifier:String = url.substr(url.indexOf("oauth_verifier=")+15, url.length); 80 | 81 | var atRequest:TwitterRequest = twitter.oauth_accessToken(verifier); 82 | atRequest.addEventListener(TwitterRequestEvent.COMPLETE, tokenComplete); 83 | } 84 | } 85 | ``` 86 | 87 | We start listening for a `LocationChange` event (every time the web browser changes its web page), once a web page contains the `oauth_verifier` parameter we dispose the StageWebView and extract the parameter to a variable. 88 | 89 | Then we called the `oauth_accessToken` method with our verifier as its parameter. Now we're going to listen for the response which will return the `access_token`. 90 | 91 | ```actionscript 92 | private function tokenComplete(event:TwitterRequestEvent):void 93 | { 94 | credentialsRequest = twitter.account_verifyCredentials(); 95 | credentialsRequest.addEventListener(TwitterRequestEvent.COMPLETE, credentialsComplete); 96 | } 97 | ``` 98 | 99 | Our Access Token is saved in the `TwitterTokenSet` object (behind the scenes) and will be automatically used in future requests to the API. In this case we call the `account_verifyCredentials` method which returns detailed information of the logged in user. 100 | 101 | ```actionscript 102 | private function credentialsComplete(event:TwitterRequestEvent):void 103 | { 104 | trace(credentialsRequest.response); 105 | var response:Object = JSON.parse(String(credentialsRequest.response)); 106 | } 107 | ``` 108 | 109 | We listen for the response and create an Object from it using the JSON parser. From there you can take the information you need. -------------------------------------------------------------------------------- /twitter/examples/FlexExample.mxml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/TwitterRequest.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter 2 | { 3 | 4 | import flash.events.Event; 5 | import flash.events.EventDispatcher; 6 | import flash.events.HTTPStatusEvent; 7 | import flash.events.IOErrorEvent; 8 | import flash.events.SecurityErrorEvent; 9 | import flash.net.URLLoader; 10 | import flash.net.URLRequest; 11 | 12 | import isle.susisu.twitter.events.TwitterErrorEvent; 13 | import isle.susisu.twitter.events.TwitterRequestEvent; 14 | import isle.susisu.twitter.utils.getOAuthParameters; 15 | import isle.susisu.twitter.utils.makeAuthorizationHeader; 16 | import isle.susisu.twitter.utils.makeOAuthSignature; 17 | import isle.susisu.twitter.utils.mergeObjects; 18 | import isle.susisu.twitter.utils.MultipartFormData; 19 | import isle.susisu.twitter.utils.objectToSortedQueryString; 20 | 21 | public class TwitterRequest extends EventDispatcher 22 | { 23 | 24 | private var _urlRequest:URLRequest; 25 | private var _urlLoader:URLLoader; 26 | 27 | private var _tokenSet:TwitterTokenSet; 28 | private var _url:String; 29 | private var _method:String; 30 | private var _data:Object; 31 | private var _proxy:String; 32 | private var _response:String; 33 | private var _complete:Boolean; 34 | 35 | public function TwitterRequest(tokenSet:TwitterTokenSet, url:String, method:String = "GET", data:Object = null, proxy:String = null) 36 | { 37 | _tokenSet = tokenSet; 38 | _url = url; 39 | _method = method; 40 | _data = data; 41 | _proxy = proxy; 42 | _response = ""; 43 | _complete = false; 44 | 45 | _urlRequest = new URLRequest(); 46 | _urlRequest.method = _method; 47 | 48 | _urlLoader = new URLLoader(); 49 | addListeners(); 50 | } 51 | 52 | public function get tokenSet():TwitterTokenSet 53 | { 54 | return _tokenSet; 55 | } 56 | public function set tokenSet(value:TwitterTokenSet):void 57 | { 58 | _tokenSet=value; 59 | } 60 | 61 | public function get url():String 62 | { 63 | return _url; 64 | } 65 | 66 | public function get method():String 67 | { 68 | return _method; 69 | } 70 | 71 | public function get data():Object 72 | { 73 | return _data; 74 | } 75 | 76 | public function get proxy():String 77 | { 78 | return _proxy; 79 | } 80 | public function set proxy(value:String):void 81 | { 82 | _proxy = value; 83 | } 84 | 85 | public function get response():String 86 | { 87 | return _response; 88 | } 89 | 90 | public function get complete():Boolean 91 | { 92 | return _complete; 93 | } 94 | 95 | public function send():void 96 | { 97 | _response = ""; 98 | _complete = false; 99 | 100 | var parameters:Object; 101 | var query:String; 102 | var base:String; 103 | var signature:String; 104 | 105 | if(_method.toUpperCase() == "GET") 106 | { 107 | if(_proxy == null) 108 | { 109 | _urlRequest.url = _url; 110 | } 111 | else 112 | { 113 | _urlRequest.url = _proxy; 114 | } 115 | parameters = mergeObjects(_data,getOAuthParameters(_tokenSet)); 116 | //convert to query 117 | query = objectToSortedQueryString(parameters); 118 | //base to make signature 119 | base = _method.toUpperCase() + "&" + encodeURIComponent(_url) + "&" + encodeURIComponent(query); 120 | //make signature 121 | signature = encodeURIComponent(makeOAuthSignature(_tokenSet, base)); 122 | 123 | _urlRequest.data = query + "&oauth_signature=" + signature + (_proxy != null ? "&url=" + _url : ""); 124 | _urlRequest.requestHeaders = []; 125 | _urlRequest.contentType = "application/x-www-form-urlencoded"; 126 | } 127 | else 128 | { 129 | _urlRequest.url = _url; 130 | var oauthParameters:Object = getOAuthParameters(_tokenSet); 131 | if(_data is MultipartFormData) 132 | { 133 | query = objectToSortedQueryString(oauthParameters); 134 | base = _method.toUpperCase() + "&" + encodeURIComponent(_url) + "&" + encodeURIComponent(query); 135 | signature = encodeURIComponent(makeOAuthSignature(_tokenSet, base)); 136 | oauthParameters["oauth_signature"] = signature; 137 | 138 | _urlRequest.data = _data.getByteArray(); 139 | _urlRequest.requestHeaders = [makeAuthorizationHeader(oauthParameters)]; 140 | _urlRequest.contentType = "multipart/form-data, boundary=" + _data.boundary; 141 | } 142 | else 143 | { 144 | parameters = mergeObjects(_data, oauthParameters); 145 | query = objectToSortedQueryString(parameters); 146 | base = _method.toUpperCase() + "&" + encodeURIComponent(_url) + "&" + encodeURIComponent(query); 147 | signature = encodeURIComponent(makeOAuthSignature(_tokenSet, base)); 148 | oauthParameters["oauth_signature"] = signature; 149 | 150 | _urlRequest.data = objectToSortedQueryString(_data); 151 | _urlRequest.requestHeaders = [makeAuthorizationHeader(oauthParameters)]; 152 | _urlRequest.contentType = "application/x-www-form-urlencoded"; 153 | } 154 | } 155 | 156 | _urlLoader.load(_urlRequest); 157 | } 158 | 159 | private function addListeners():void 160 | { 161 | _urlLoader.addEventListener(Event.COMPLETE, onComplete); 162 | _urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); 163 | _urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 164 | _urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); 165 | } 166 | 167 | private function removeListeners():void 168 | { 169 | _urlLoader.removeEventListener(Event.COMPLETE, onComplete); 170 | _urlLoader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); 171 | _urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); 172 | _urlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); 173 | } 174 | 175 | private function onComplete(e:Event):void 176 | { 177 | removeListeners(); 178 | 179 | _response = _urlLoader.data.toString(); 180 | _complete = true; 181 | 182 | dispatchEvent(new TwitterRequestEvent(TwitterRequestEvent.COMPLETE)); 183 | } 184 | 185 | private function onHTTPStatus(e:HTTPStatusEvent):void 186 | { 187 | if(e.status >= 400 && e.status < 500) 188 | { 189 | if(!dispatchEvent(new TwitterErrorEvent(TwitterErrorEvent.CLIENT_ERROR, false, true, e.status))) 190 | { 191 | _complete=true; 192 | } 193 | } 194 | else if(e.status >= 500) 195 | { 196 | if(!dispatchEvent(new TwitterErrorEvent(TwitterErrorEvent.SERVER_ERROR, false, true, e.status))) 197 | { 198 | _complete = true; 199 | } 200 | } 201 | else 202 | { 203 | _complete=true; 204 | } 205 | } 206 | 207 | private function onIOError(e:IOErrorEvent):void 208 | { 209 | if(!_complete) 210 | { 211 | removeListeners(); 212 | _complete = true; 213 | 214 | dispatchEvent(e); 215 | } 216 | } 217 | 218 | private function onSecurityError(e:SecurityErrorEvent):void 219 | { 220 | removeListeners(); 221 | _complete = true; 222 | 223 | dispatchEvent(e); 224 | } 225 | 226 | } 227 | 228 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/TwitterStream.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter 2 | { 3 | 4 | import flash.events.Event; 5 | import flash.events.EventDispatcher; 6 | import flash.events.HTTPStatusEvent; 7 | import flash.events.IOErrorEvent; 8 | import flash.events.ProgressEvent; 9 | import flash.events.SecurityErrorEvent; 10 | import flash.net.URLRequest; 11 | import flash.net.URLStream; 12 | import flash.utils.ByteArray; 13 | 14 | import isle.susisu.twitter.events.TwitterErrorEvent; 15 | import isle.susisu.twitter.events.TwitterStreamEvent; 16 | import isle.susisu.twitter.utils.getOAuthParameters; 17 | import isle.susisu.twitter.utils.makeAuthorizationHeader; 18 | import isle.susisu.twitter.utils.makeOAuthSignature; 19 | import isle.susisu.twitter.utils.mergeObjects; 20 | import isle.susisu.twitter.utils.MultipartFormData; 21 | import isle.susisu.twitter.utils.objectToSortedQueryString; 22 | 23 | public class TwitterStream extends EventDispatcher 24 | { 25 | 26 | private var _urlRequest:URLRequest; 27 | private var _urlStream:URLStream; 28 | 29 | private var _tokenSet:TwitterTokenSet; 30 | private var _url:String; 31 | private var _method:String; 32 | private var _data:Object; 33 | private var _buffer:String; 34 | private var _status:int; 35 | 36 | public function TwitterStream(tokenSet:TwitterTokenSet, url:String, method:String = "GET", data:Object = null) 37 | { 38 | _tokenSet = tokenSet; 39 | _url = url; 40 | _method = method; 41 | _data = data; 42 | _buffer = ""; 43 | _status = TwitterStreamStatus.DISCONNECTED; 44 | 45 | _urlRequest = new URLRequest(_url); 46 | _urlRequest.method = _method; 47 | 48 | _urlStream = new URLStream(); 49 | } 50 | 51 | public function get tokenSet():TwitterTokenSet 52 | { 53 | return _tokenSet; 54 | } 55 | public function set tokenSet(value:TwitterTokenSet):void 56 | { 57 | _tokenSet = value; 58 | } 59 | 60 | public function get url():String 61 | { 62 | return _url; 63 | } 64 | 65 | public function get method():String 66 | { 67 | return _method; 68 | } 69 | 70 | public function get data():Object 71 | { 72 | return _data; 73 | } 74 | 75 | public function get status():int 76 | { 77 | return _status; 78 | } 79 | 80 | public function open():void 81 | { 82 | if(_status > TwitterStreamStatus.DISCONNECTED) 83 | { 84 | close(); 85 | } 86 | addListeners(); 87 | _buffer = ""; 88 | _status = TwitterStreamStatus.WAITING; 89 | 90 | 91 | var parameters:Object; 92 | var query:String; 93 | var base:String; 94 | var signature:String; 95 | 96 | if(_method.toUpperCase() == "GET") 97 | { 98 | parameters = mergeObjects(_data, getOAuthParameters(_tokenSet)); 99 | //convert to query 100 | query = objectToSortedQueryString(parameters); 101 | //base to make signature 102 | base = _method.toUpperCase() + "&" + encodeURIComponent(_url) + "&" + encodeURIComponent(query); 103 | //make signature 104 | signature = encodeURIComponent(makeOAuthSignature(_tokenSet, base)); 105 | 106 | _urlRequest.data = query + "&oauth_signature=" + signature; 107 | _urlRequest.requestHeaders = []; 108 | _urlRequest.contentType = "application/x-www-form-urlencoded"; 109 | } 110 | else 111 | { 112 | var oauthParameters:Object = getOAuthParameters(_tokenSet); 113 | if(_data is MultipartFormData) 114 | { 115 | query = objectToSortedQueryString(oauthParameters); 116 | base = _method.toUpperCase() + "&" + encodeURIComponent(_url) + "&" + encodeURIComponent(query); 117 | signature = encodeURIComponent(makeOAuthSignature(_tokenSet, base)); 118 | oauthParameters["oauth_signature"] = signature; 119 | 120 | _urlRequest.data = _data.getByteArray(); 121 | _urlRequest.requestHeaders = [makeAuthorizationHeader(oauthParameters)]; 122 | _urlRequest.contentType = "multipart/form-data, boundary=" + _data.boundary; 123 | } 124 | else 125 | { 126 | parameters = mergeObjects(_data,oauthParameters); 127 | query = objectToSortedQueryString(parameters); 128 | base = _method.toUpperCase() + "&" + encodeURIComponent(_url) + "&" + encodeURIComponent(query); 129 | signature = encodeURIComponent(makeOAuthSignature(_tokenSet, base)); 130 | oauthParameters["oauth_signature"] = signature; 131 | 132 | _urlRequest.data = objectToSortedQueryString(_data); 133 | _urlRequest.requestHeaders = [makeAuthorizationHeader(oauthParameters)]; 134 | _urlRequest.contentType = "application/x-www-form-urlencoded"; 135 | } 136 | } 137 | 138 | _urlStream.load(_urlRequest); 139 | } 140 | 141 | public function close():void 142 | { 143 | if(_status > TwitterStreamStatus.DISCONNECTED) 144 | { 145 | removeListeners(); 146 | _status = TwitterStreamStatus.DISCONNECTED; 147 | dispatchEvent(new TwitterStreamEvent(TwitterStreamEvent.DISCONNECTED)); 148 | 149 | _urlStream.close(); 150 | } 151 | } 152 | 153 | private function addListeners():void 154 | { 155 | _urlStream.addEventListener(Event.COMPLETE, onComplete); 156 | _urlStream.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); 157 | _urlStream.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 158 | _urlStream.addEventListener(ProgressEvent.PROGRESS, onProgress); 159 | _urlStream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); 160 | } 161 | 162 | private function removeListeners():void 163 | { 164 | _urlStream.removeEventListener(Event.COMPLETE, onComplete); 165 | _urlStream.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); 166 | _urlStream.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); 167 | _urlStream.removeEventListener(ProgressEvent.PROGRESS, onProgress); 168 | _urlStream.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); 169 | } 170 | 171 | private function onComplete(e:Event):void 172 | { 173 | removeListeners(); 174 | _status = TwitterStreamStatus.DISCONNECTED; 175 | 176 | dispatchEvent(new TwitterStreamEvent(TwitterStreamEvent.DISCONNECTED)); 177 | } 178 | 179 | private function onHTTPStatus(e:HTTPStatusEvent):void 180 | { 181 | if(e.status >= 400 && e.status < 500) 182 | { 183 | if(!dispatchEvent(new TwitterErrorEvent(TwitterErrorEvent.CLIENT_ERROR, false, true, e.status))) 184 | { 185 | _status = TwitterStreamStatus.DISCONNECTED; 186 | } 187 | } 188 | else if(e.status>=500) 189 | { 190 | if(!dispatchEvent(new TwitterErrorEvent(TwitterErrorEvent.SERVER_ERROR, false, true, e.status))) 191 | { 192 | _status = TwitterStreamStatus.DISCONNECTED; 193 | } 194 | } 195 | else 196 | { 197 | _status = TwitterStreamStatus.DISCONNECTED; 198 | } 199 | } 200 | 201 | private function onIOError(e:IOErrorEvent):void 202 | { 203 | removeListeners(); 204 | if(_status > TwitterStreamStatus.DISCONNECTED) 205 | { 206 | _status = TwitterStreamStatus.DISCONNECTED; 207 | 208 | dispatchEvent(e); 209 | } 210 | } 211 | 212 | private function onProgress(e:ProgressEvent):void 213 | { 214 | if(_status < TwitterStreamStatus.CONNECTING) 215 | { 216 | _status = TwitterStreamStatus.CONNECTING; 217 | dispatchEvent(new TwitterStreamEvent(TwitterStreamEvent.CONNECTED)); 218 | } 219 | _buffer += _urlStream.readUTFBytes(_urlStream.bytesAvailable); 220 | if(_buffer.indexOf("\r\n") >= 0) 221 | { 222 | var div:Array = _buffer.split("\r\n"); 223 | var len:int = div.length; 224 | for(var i:int = 0; i < len - 1; i++) 225 | { 226 | dispatchEvent(new TwitterStreamEvent(TwitterStreamEvent.MESSAGE_RECEIVED, false, false, div[i])); 227 | } 228 | _buffer = div[len-1]; 229 | } 230 | } 231 | 232 | private function onSecurityError(e:SecurityErrorEvent):void 233 | { 234 | removeListeners(); 235 | _status = TwitterStreamStatus.DISCONNECTED; 236 | 237 | dispatchEvent(e); 238 | } 239 | 240 | } 241 | 242 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/TwitterStreamStatus.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter 2 | { 3 | 4 | public class TwitterStreamStatus extends Object 5 | { 6 | 7 | public static const DISCONNECTED:int=0; 8 | public static const WAITING:int=1; 9 | public static const CONNECTING:int=3; 10 | 11 | public function TwitterStreamStatus() 12 | { 13 | 14 | } 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/TwitterTokenSet.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter 2 | { 3 | 4 | public class TwitterTokenSet extends Object 5 | { 6 | 7 | private var _consumerKey:String; 8 | private var _consumerKeySecret:String; 9 | private var _oauthToken:String; 10 | private var _oauthTokenSecret:String; 11 | 12 | public function TwitterTokenSet(consumerKey:String,consumerKeySecret:String,oauthToken:String,oauthTokenSecret:String) 13 | { 14 | _consumerKey=consumerKey; 15 | _consumerKeySecret=consumerKeySecret; 16 | _oauthToken=oauthToken; 17 | _oauthTokenSecret=oauthTokenSecret; 18 | } 19 | 20 | public function get consumerKey():String 21 | { 22 | return _consumerKey; 23 | } 24 | 25 | public function get consumerKeySecret():String 26 | { 27 | return _consumerKeySecret 28 | } 29 | 30 | public function get oauthToken():String 31 | { 32 | return _oauthToken; 33 | } 34 | 35 | public function get oauthTokenSecret():String 36 | { 37 | return _oauthTokenSecret; 38 | } 39 | 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/FALSE.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api{ 2 | 3 | public const FALSE:String="false"; 4 | 5 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/TRUE.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api{ 2 | 3 | public const TRUE:String="true"; 4 | 5 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/TwitterURL.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | public class TwitterURL extends Object 5 | { 6 | 7 | public static const account_REMOVE_PROFILE_BANNER:String="https://api.twitter.com/1.1/account/remove_profile_banner.json"; 8 | public static const account_SETTINGS:String="https://api.twitter.com/1.1/account/settings.json"; 9 | public static const account_UPDATE_DELIVERY_DEVICE:String="https://api.twitter.com/1.1/account/update_delivery_device.json"; 10 | public static const account_UPDATE_PROFILE:String="https://api.twitter.com/1.1/account/update_profile.json"; 11 | public static const account_UPDATE_PROFILE_BACKGROUND_IMAGE:String="https://api.twitter.com/1.1/account/update_profile_background_image.json"; 12 | public static const account_UPDATE_PROFILE_BANNER:String="https://api.twitter.com/1.1/account/update_profile_banner.json"; 13 | public static const account_UPDATE_PROFILE_COLORS:String="https://api.twitter.com/1.1/account/update_profile_colors.json"; 14 | public static const account_UPDATE_PROFILE_IMAGE:String="https://api.twitter.com/1.1/account/update_profile_image.json"; 15 | public static const account_VERIFY_CREDENTIALS:String="https://api.twitter.com/1.1/account/verify_credentials.json"; 16 | public static const application_RATE_LIMIT_STATUS:String="https://api.twitter.com/1.1/application/rate_limit_status.json"; 17 | public static const blocks_CREATE:String="https://api.twitter.com/1.1/blocks/create.json"; 18 | public static const blocks_DESTROY:String="https://api.twitter.com/1.1/blocks/destroy.json"; 19 | public static const blocks_IDS:String="https://api.twitter.com/1.1/blocks/ids.json"; 20 | public static const blocks_LIST:String="https://api.twitter.com/1.1/blocks/list.json"; 21 | public static const DIRECT_MESSAGES:String="https://api.twitter.com/1.1/direct_messages.json"; 22 | public static const directMessages_DESTROY:String="https://api.twitter.com/1.1/direct_messages/destroy.json"; 23 | public static const directMessages_NEW:String="https://api.twitter.com/1.1/direct_messages/new.json"; 24 | public static const directMessages_SENT:String="https://api.twitter.com/1.1/direct_messages/sent.json"; 25 | public static const directMessages_SHOW:String="https://api.twitter.com/1.1/direct_messages/show.json"; 26 | public static const favorites_CREATE:String="https://api.twitter.com/1.1/favorites/create.json"; 27 | public static const favorites_DESTROY:String="https://api.twitter.com/1.1/favorites/destroy.json"; 28 | public static const favorites_LIST:String="https://api.twitter.com/1.1/favorites/list.json"; 29 | public static const followers_IDS:String="https://api.twitter.com/1.1/followers/ids.json"; 30 | public static const followers_LIST:String="https://api.twitter.com/1.1/followers/list.json"; 31 | public static const friends_IDS:String="https://api.twitter.com/1.1/friends/ids.json"; 32 | public static const friends_LIST:String="https://api.twitter.com/1.1/friends/list.json"; 33 | public static const friendships_CREATE:String="https://api.twitter.com/1.1/friendships/create.json"; 34 | public static const friendships_DESTROY:String="https://api.twitter.com/1.1/friendships/destroy.json"; 35 | public static const friendships_INCOMING:String="https://api.twitter.com/1.1/friendships/incoming.json"; 36 | public static const friendships_LOOKUP:String="https://api.twitter.com/1.1/friendships/lookup.json"; 37 | public static const friendships_OUTGOING:String="https://api.twitter.com/1.1/friendships/outgoing.json"; 38 | public static const friendships_SHOW:String="https://api.twitter.com/1.1/friendships/show.json"; 39 | public static const friendships_UPDATE:String="https://api.twitter.com/1.1/friendships/update.json"; 40 | public static const geo_id__PLACE_ID:String="https://api.twitter.com/1.1/geo/id/:place_id.json"; 41 | public static const geo_PLACE:String="https://api.twitter.com/1.1/geo/place.json"; 42 | public static const geo_REVERSE_GEOCODE:String="http://api.twitter.com/1.1/geo/reverse_geocode.json"; 43 | public static const geo_SEARCH:String="https://api.twitter.com/1.1/geo/search.json"; 44 | public static const geo_SIMILAR_PLACES:String="https://api.twitter.com/1.1/geo/similar_places.json"; 45 | public static const help_CONFIGURATION:String="https://api.twitter.com/1.1/help/configuration.json"; 46 | public static const help_LANGUAGES:String="https://api.twitter.com/1.1/help/languages.json"; 47 | public static const help_PRIVACY:String="https://api.twitter.com/1.1/help/privacy.json"; 48 | public static const help_TOS:String="https://api.twitter.com/1.1/help/tos.json"; 49 | public static const lists_CREATE:String="https://api.twitter.com/1.1/lists/create.json"; 50 | public static const lists_DESTROY:String="https://api.twitter.com/1.1/lists/destroy.json"; 51 | public static const lists_LIST:String="http://api.twitter.com/1.1/lists/list.json"; 52 | public static const lists_MEMBERS:String="https://api.twitter.com/1.1/lists/members.json"; 53 | public static const lists_members_CREATE:String="https://api.twitter.com/1.1/lists/members/create.json"; 54 | public static const lists_members_CREATE_ALL:String="https://api.twitter.com/1.1/lists/members/create_all.json"; 55 | public static const lists_members_DESTROY:String="https://api.twitter.com/1.1/lists/members/destroy.json"; 56 | public static const lists_members_DESTROY_ALL:String="https://api.twitter.com/1.1/lists/members/destroy_all.json"; 57 | public static const lists_members_SHOW:String="https://api.twitter.com/1.1/lists/members/show.json"; 58 | public static const lists_MEMBERSHIPS:String="https://api.twitter.com/1.1/lists/memberships.json"; 59 | public static const lists_SHOW:String="https://api.twitter.com/1.1/lists/show.json"; 60 | public static const lists_STATUSES:String="https://api.twitter.com/1.1/lists/statuses.json"; 61 | public static const lists_SUBSCRIBERS:String="https://api.twitter.com/1.1/lists/subscribers.json"; 62 | public static const lists_subscribers_CREATE:String="https://api.twitter.com/1.1/lists/subscribers/create.json"; 63 | public static const lists_subscribers_DESTROY:String="https://api.twitter.com/1.1/lists/subscribers/destroy.json"; 64 | public static const lists_subscribers_SHOW:String="https://api.twitter.com/1.1/lists/subscribers/show.json"; 65 | public static const lists_SUBSCRIPTIONS:String="https://api.twitter.com/1.1/lists/subscriptions.json"; 66 | public static const lists_UPDATE:String="https://api.twitter.com/1.1/lists/update.json"; 67 | public static const oauth_ACCESS_TOKEN:String="https://api.twitter.com/oauth/access_token"; 68 | //public static const oauth_AUTHENTICATE:String="https://api.twitter.com/oauth/authenticate"; 69 | public static const oauth_AUTHORIZE:String="https://api.twitter.com/oauth/authorize"; 70 | public static const oauth_REQUEST_TOKEN:String="https://api.twitter.com/oauth/request_token"; 71 | public static const savedSearches_CREATE:String="https://api.twitter.com/1.1/saved_searches/create.json"; 72 | public static const savedSearches_destroy__ID:String="https://api.twitter.com/1.1/saved_searches/destroy/:id.json"; 73 | public static const savedSearches_LIST:String="https://api.twitter.com/1.1/saved_searches/list.json"; 74 | public static const savedSearches_show__ID:String="https://api.twitter.com/1.1/saved_searches/show/:id.json"; 75 | public static const search_TWEETS:String="https://api.twitter.com/1.1/search/tweets.json"; 76 | //public static const SITE:String="https://sitestream.twitter.com/1.1/site.json"; 77 | public static const statuses_destroy__ID:String="https://api.twitter.com/1.1/statuses/destroy/:id.json"; 78 | //public static const statuses_FILTER:String="https://stream.twitter.com/1.1/statuses/filter.json"; 79 | //public static const statuses_FIREHOSE:String="https://stream.twitter.com/1.1/statuses/firehose.json"; 80 | public static const statuses_HOME_TIMELINE:String="https://api.twitter.com/1.1/statuses/home_timeline.json"; 81 | public static const statuses_MENTIONS_TIMELINE:String="https://api.twitter.com/1.1/statuses/mentions_timeline.json"; 82 | public static const statuses_OEMBED:String="https://api.twitter.com/1.1/statuses/oembed.json"; 83 | public static const statuses_retweet__ID:String="https://api.twitter.com/1.1/statuses/retweet/:id.json"; 84 | public static const statuses_retweets__ID:String="https://api.twitter.com/1.1/statuses/retweets/:id.json"; 85 | public static const statuses_RETWEETS_OF_ME:String="https://api.twitter.com/1.1/statuses/retweets_of_me.json"; 86 | //public static const statuses_SAMPLE:String="https://stream.twitter.com/1.1/statuses/sample.json"; 87 | public static const statuses_SHOW:String="https://api.twitter.com/1.1/statuses/show.json"; 88 | public static const statuses_UPDATE:String="https://api.twitter.com/1.1/statuses/update.json"; 89 | public static const statuses_UPDATE_WITH_MEDIA:String="https://api.twitter.com/1.1/statuses/update_with_media.json"; 90 | public static const statuses_USER_TIMELINE:String="https://api.twitter.com/1.1/statuses/user_timeline.json"; 91 | public static const trends_AVAILABLE:String="https://api.twitter.com/1.1/trends/available.json"; 92 | public static const trends_CLOSEST:String="https://api.twitter.com/1.1/trends/closest.json"; 93 | public static const trends_PLACE:String="https://api.twitter.com/1.1/trends/place.json"; 94 | public static const USER:String="https://userstream.twitter.com/1.1/user.json"; 95 | public static const users_CONTRIBUTEES:String="https://api.twitter.com/1.1/users/contributees.json"; 96 | public static const users_CONTRIBUTORS:String="https://api.twitter.com/1.1/users/contributors.json"; 97 | public static const users_LOOKUP:String="https://api.twitter.com/1.1/users/lookup.json"; 98 | public static const users_PROFILE_BANNER:String="https://api.twitter.com/1.1/users/profile_banner.json"; 99 | public static const users_REPORT_SPAM:String="https://api.twitter.com/1.1/users/report_spam.json"; 100 | public static const users_SEARCH:String="https://api.twitter.com/1.1/users/search.json"; 101 | public static const users_SHOW:String="https://api.twitter.com/1.1/users/show.json"; 102 | public static const users_SUGGESTIONS:String="http://api.twitter.com/1.1/users/suggestions.json"; 103 | public static const users_suggestions__SLUG:String="http://api.twitter.com/1.1/users/suggestions/:slug.json"; 104 | public static const users_suggestions__slug_MEMBERS:String="http://api.twitter.com/1.1/users/suggestions/:slug/members.json"; 105 | 106 | public function TwitterURL() 107 | { 108 | 109 | } 110 | 111 | } 112 | 113 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_getSettings.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _account_getSettings( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_SETTINGS,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_removeProfileBanner.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _account_removeProfileBanner( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_REMOVE_PROFILE_BANNER,URLRequestMethod.POST); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_settings.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _account_settings( 10 | tokenSet:TwitterTokenSet, 11 | trendLocationWoeid:int=-1, 12 | sleepTimeEnabled:Boolean=false, 13 | startSleepTime:int=-1, 14 | endSleepTime:int=-1, 15 | timeZone:String=null, 16 | lang:String=null 17 | ):TwitterRequest 18 | { 19 | //parameters 20 | var parameters:Object=new Object(); 21 | if(trendLocationWoeid>=0){ 22 | parameters["trend_location_woeid"]=trendLocationWoeid.toString(); 23 | } 24 | parameters["sleep_time_enabled"]=sleepTimeEnabled?TRUE:FALSE; 25 | if(startSleepTime>=0){ 26 | parameters["start_sleep_time"]=startSleepTime.toString(); 27 | } 28 | if(endSleepTime>=0){ 29 | parameters["end_sleep_time"]=endSleepTime.toString(); 30 | } 31 | if(timeZone!=null){ 32 | parameters["time_zone"]=timeZone; 33 | } 34 | if(lang!=null){ 35 | parameters["lang"]=lang; 36 | } 37 | //make request 38 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_SETTINGS,URLRequestMethod.POST,parameters); 39 | 40 | return request; 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_updateDeliveryDevice.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _account_updateDeliveryDevice( 10 | tokenSet:TwitterTokenSet, 11 | device:String, 12 | includeEntities:Boolean=true 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["device"]=device; 18 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 19 | //make request 20 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_UPDATE_DELIVERY_DEVICE,URLRequestMethod.POST,parameters); 21 | 22 | return request; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_updateProfile.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _account_updateProfile( 11 | tokenSet:TwitterTokenSet, 12 | name:String=null, 13 | url:String=null, 14 | location:String=null, 15 | description:String=null, 16 | includeEntities:Boolean=true, 17 | skipStatus:Boolean=true 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(name!=null) 23 | { 24 | parameters["name"]=encodeText(name); 25 | } 26 | if(url!=null) 27 | { 28 | parameters["url"]=encodeText(url); 29 | } 30 | if(location!=null) 31 | { 32 | parameters["location"]=encodeText(location); 33 | } 34 | if(description!=null) 35 | { 36 | parameters["description"]=encodeText(description); 37 | } 38 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 39 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 40 | //make request 41 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_UPDATE_PROFILE,URLRequestMethod.POST,parameters); 42 | 43 | return request; 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_updateProfileBackgroundImage.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | import flash.utils.ByteArray; 6 | 7 | import com.hurlant.util.Base64; 8 | 9 | import isle.susisu.twitter.TwitterRequest; 10 | import isle.susisu.twitter.TwitterTokenSet; 11 | import isle.susisu.twitter.utils.MultipartFormData; 12 | 13 | public function _account_updateProfileBackgroundImage( 14 | tokenSet:TwitterTokenSet, 15 | image:ByteArray=null, 16 | tile:Boolean=true, 17 | useBackgroundImage:Boolean=true, 18 | includeEntities:Boolean=true, 19 | skipStatus:Boolean=true 20 | ):TwitterRequest 21 | { 22 | //parameters 23 | var mfd:MultipartFormData=new MultipartFormData(); 24 | if(image!=null) 25 | { 26 | mfd.addData("image",Base64.encodeByteArray(image)); 27 | } 28 | mfd.addData("tile",tile?TRUE:FALSE); 29 | mfd.addData("use",useBackgroundImage?TRUE:FALSE); 30 | mfd.addData("include_entities",includeEntities?TRUE:FALSE); 31 | mfd.addData("skip_status",skipStatus?TRUE:FALSE); 32 | //make request 33 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_UPDATE_PROFILE_BACKGROUND_IMAGE,URLRequestMethod.POST,mfd); 34 | 35 | return request; 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_updateProfileBanner.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | import flash.utils.ByteArray; 6 | 7 | import com.hurlant.util.Base64; 8 | 9 | import isle.susisu.twitter.TwitterRequest; 10 | import isle.susisu.twitter.TwitterTokenSet; 11 | import isle.susisu.twitter.utils.MultipartFormData; 12 | 13 | public function _account_updateProfileBanner( 14 | tokenSet:TwitterTokenSet, 15 | banner:ByteArray, 16 | width:int=-1, 17 | height:int=-1, 18 | offsetLeft:int=-1, 19 | offsetTop:int=-1 20 | ):TwitterRequest 21 | { 22 | //parameters 23 | var mfd:MultipartFormData=new MultipartFormData(); 24 | mfd.addData("banner",Base64.encodeByteArray(banner)); 25 | if(width>=0) 26 | { 27 | mfd.addData("width",width.toString()); 28 | } 29 | if(height>=0) 30 | { 31 | mfd.addData("height",height.toString()); 32 | } 33 | if(offsetLeft>=0) 34 | { 35 | mfd.addData("offset_left",offsetLeft.toString()); 36 | } 37 | if(offsetTop>=0) 38 | { 39 | mfd.addData("offset_top",offsetTop.toString()); 40 | } 41 | //make request 42 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_UPDATE_PROFILE_BANNER,URLRequestMethod.POST,mfd); 43 | 44 | return request; 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_updateProfileColors.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _account_updateProfileColors( 10 | tokenSet:TwitterTokenSet, 11 | profileBackgroundColor:int=-1, 12 | profileLinkColor:int=-1, 13 | profileSidebarBorderColor:int=-1, 14 | profileSidebarFillColor:int=-1, 15 | profileTextColor:int=-1, 16 | includeEntities:Boolean=true, 17 | skipStatus:Boolean=true 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(profileBackgroundColor>=0) 23 | { 24 | parameters["profile_background_color"]=profileBackgroundColor.toString(16).toUpperCase(); 25 | } 26 | if(profileLinkColor>=0) 27 | { 28 | parameters["profile_link_color"]=profileLinkColor.toString(16).toUpperCase(); 29 | } 30 | if(profileSidebarBorderColor>=0) 31 | { 32 | parameters["profile_sidebar_border_color"]=profileSidebarBorderColor.toString(16).toUpperCase(); 33 | } 34 | if(profileSidebarFillColor>=0) 35 | { 36 | parameters["profile_sidebar_fill_color"]=profileSidebarFillColor.toString(16).toUpperCase(); 37 | } 38 | if(profileTextColor>=0) 39 | { 40 | parameters["profile_text_color"]=profileTextColor.toString(16).toUpperCase(); 41 | } 42 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 43 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 44 | //make request 45 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_UPDATE_PROFILE_COLORS,URLRequestMethod.POST,parameters); 46 | 47 | return request; 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_updateProfileImage.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | import flash.utils.ByteArray; 6 | 7 | import com.hurlant.util.Base64; 8 | 9 | import isle.susisu.twitter.TwitterRequest; 10 | import isle.susisu.twitter.TwitterTokenSet; 11 | import isle.susisu.twitter.utils.MultipartFormData; 12 | 13 | public function _account_updateProfileImage( 14 | tokenSet:TwitterTokenSet, 15 | image:ByteArray, 16 | includeEntities:Boolean=true, 17 | skipStatus:Boolean=true 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var mfd:MultipartFormData=new MultipartFormData(); 22 | mfd.addData("image",Base64.encodeByteArray(image)); 23 | mfd.addData("include_entities",includeEntities?TRUE:FALSE); 24 | mfd.addData("skip_status",skipStatus?TRUE:FALSE); 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_UPDATE_PROFILE_IMAGE,URLRequestMethod.POST,mfd); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_account_verifyCredentials.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _account_verifyCredentials( 10 | tokenSet:TwitterTokenSet, 11 | includeEntities:Boolean=true, 12 | skipStatus:Boolean=true 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 18 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 19 | //make request 20 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.account_VERIFY_CREDENTIALS,URLRequestMethod.GET,parameters); 21 | 22 | return request; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_application_rateLimitStatus.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _application_rateLimitStatus( 11 | tokenSet:TwitterTokenSet, 12 | resources:Array 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["resources"]=encodeText(resources.join(",")); 18 | //make request 19 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.application_RATE_LIMIT_STATUS,URLRequestMethod.GET,parameters); 20 | 21 | return request; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_blocks_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _blocks_create( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | includeEntities:Boolean=true, 14 | skipStatus:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 28 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 29 | //make request 30 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.blocks_CREATE,URLRequestMethod.POST,parameters); 31 | 32 | return request; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_blocks_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _blocks_destroy( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | includeEntities:Boolean=true, 14 | skipStatus:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 28 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 29 | //make request 30 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.blocks_DESTROY,URLRequestMethod.POST,parameters); 31 | 32 | return request; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_blocks_ids.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _blocks_ids( 10 | tokenSet:TwitterTokenSet, 11 | cursor:String="-1" 12 | ):TwitterRequest 13 | { 14 | //parameters 15 | var parameters:Object=new Object(); 16 | parameters["stringify_ids"]=TRUE; 17 | if(cursor!="-1") 18 | { 19 | parameters["cursor"]=cursor; 20 | } 21 | //make request 22 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.blocks_IDS,URLRequestMethod.GET,parameters); 23 | 24 | return request; 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_blocks_list.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _blocks_list( 10 | tokenSet:TwitterTokenSet, 11 | cursor:String="-1", 12 | includeEntities:Boolean=true, 13 | skipStatus:Boolean=true 14 | ):TwitterRequest 15 | { 16 | //parameters 17 | var parameters:Object=new Object(); 18 | if(cursor!="-1") 19 | { 20 | parameters["cursor"]=cursor; 21 | } 22 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 23 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 24 | //make request 25 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.blocks_LIST,URLRequestMethod.GET,parameters); 26 | 27 | return request; 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_directMessages.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _directMessages( 10 | tokenSet:TwitterTokenSet, 11 | count:int=0, 12 | sinceId:String=null, 13 | maxId:String=null, 14 | page:int=0, 15 | includeEntities:Boolean=true, 16 | skipStatus:Boolean=true 17 | ):TwitterRequest 18 | { 19 | //parameters 20 | var parameters:Object=new Object 21 | if(count>0) 22 | { 23 | parameters["count"]=count.toString(); 24 | } 25 | if(sinceId!=null) 26 | { 27 | parameters["since_id"]=sinceId; 28 | } 29 | if(maxId!=null) 30 | { 31 | parameters["max_id"]=maxId; 32 | } 33 | if(page>0) 34 | { 35 | parameters["page"]=page.toString(); 36 | } 37 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 38 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 39 | //make request 40 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.DIRECT_MESSAGES,URLRequestMethod.GET,parameters); 41 | 42 | return request; 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_directMessages_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _directMessages_destroy( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | includeEntities:Boolean=true 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["id"]=id; 18 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 19 | //make request 20 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.directMessages_DESTROY,URLRequestMethod.POST,parameters); 21 | 22 | return request; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_directMessages_new.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _directMessages_new( 11 | tokenSet:TwitterTokenSet, 12 | text:String, 13 | userId:String=null, 14 | screenName:String=null 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | parameters["text"]=encodeText(text); 20 | if(userId!=null) 21 | { 22 | parameters["user_id"]=userId; 23 | } 24 | if(screenName!=null) 25 | { 26 | parameters["screen_name"]=screenName; 27 | } 28 | //make request 29 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.directMessages_NEW,URLRequestMethod.POST,parameters); 30 | 31 | return request; 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_directMessages_sent.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _directMessages_sent( 10 | tokenSet:TwitterTokenSet, 11 | count:int=0, 12 | sinceId:String=null, 13 | maxId:String=null, 14 | page:int=0, 15 | includeEntities:Boolean=true 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(sinceId!=null) 21 | { 22 | parameters["since_id"]=sinceId; 23 | } 24 | if(maxId!=null) 25 | { 26 | parameters["max_id"]=maxId; 27 | } 28 | if(count>0) 29 | { 30 | parameters["count"]=count.toString(); 31 | } 32 | if(page>0) 33 | { 34 | parameters["page"]=page.toString(); 35 | } 36 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 37 | //make request 38 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.directMessages_SENT,URLRequestMethod.GET,parameters); 39 | 40 | return request; 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_directMessages_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _directMessages_show( 10 | tokenSet:TwitterTokenSet, 11 | id:String 12 | ):TwitterRequest 13 | { 14 | //parameters 15 | var parameters:Object=new Object(); 16 | parameters["id"]=id; 17 | //make request 18 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.directMessages_SHOW,URLRequestMethod.GET,parameters); 19 | 20 | return request; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_favorites_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _favorites_create( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | includeEntities:Boolean=true 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["id"]=id; 18 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 19 | //make request 20 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.favorites_CREATE,URLRequestMethod.POST,parameters); 21 | 22 | return request; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_favorites_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _favorites_destroy( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | includeEntities:Boolean=true 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["id"]=id; 18 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 19 | //make request 20 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.favorites_DESTROY,URLRequestMethod.POST,parameters); 21 | 22 | return request; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_favorites_list.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _favorites_list( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | count:int=0, 14 | sinceId:String=null, 15 | maxId:String=null, 16 | includeEntities:Boolean=true 17 | ):TwitterRequest 18 | { 19 | //parameters 20 | var parameters:Object=new Object(); 21 | if(userId!=null) 22 | { 23 | parameters["user_id"]=userId; 24 | } 25 | if(screenName!=null) 26 | { 27 | parameters["screen_name"]=screenName; 28 | } 29 | if(count>0) 30 | { 31 | parameters["count"]=count.toString(); 32 | } 33 | if(sinceId!=null) 34 | { 35 | parameters["since_id"]=sinceId; 36 | } 37 | if(maxId!=null) 38 | { 39 | parameters["max_id"]=maxId; 40 | } 41 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 42 | //make request 43 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.favorites_LIST,URLRequestMethod.GET,parameters); 44 | 45 | return request; 46 | } 47 | 48 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_followers_ids.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _followers_ids( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | cursor:String="-1", 14 | count:int=0 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | parameters["stringify_ids"]=TRUE; 20 | if(userId!=null) 21 | { 22 | parameters["user_id"]=userId; 23 | } 24 | if(screenName!=null) 25 | { 26 | parameters["screen_name"]=screenName; 27 | } 28 | if(cursor!="-1") 29 | { 30 | parameters["cursor"]=cursor; 31 | } 32 | if(count>0) 33 | { 34 | parameters["count"]=count.toString(); 35 | } 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.followers_IDS,URLRequestMethod.GET,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_followers_list.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _followers_list( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | cursor:String="-1", 14 | skipStatus:Boolean=true, 15 | includeUserEntities:Boolean=true 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(userId!=null) 21 | { 22 | parameters["user_id"]=userId; 23 | } 24 | if(screenName!=null) 25 | { 26 | parameters["screen_name"]=screenName; 27 | } 28 | if(cursor!="-1") 29 | { 30 | parameters["cursor"]=cursor; 31 | } 32 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 33 | parameters["include_user_entities"]=includeUserEntities?TRUE:FALSE; 34 | //make request 35 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.followers_LIST,URLRequestMethod.GET,parameters); 36 | 37 | return request; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friends_ids.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friends_ids( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | cursor:String="-1", 14 | count:int=0 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | parameters["stringify_ids"]=TRUE; 20 | if(userId!=null) 21 | { 22 | parameters["user_id"]=userId; 23 | } 24 | if(screenName!=null) 25 | { 26 | parameters["screen_name"]=screenName; 27 | } 28 | if(cursor!="-1") 29 | { 30 | parameters["cursor"]=cursor; 31 | } 32 | if(count>0) 33 | { 34 | parameters["count"]=count.toString(); 35 | } 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friends_IDS,URLRequestMethod.GET,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friends_list.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friends_list( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | cursor:String="-1", 14 | skipStatus:Boolean=true, 15 | includeUserEntities:Boolean=true 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(userId!=null) 21 | { 22 | parameters["user_id"]=userId; 23 | } 24 | if(screenName!=null) 25 | { 26 | parameters["screen_name"]=screenName; 27 | } 28 | if(cursor!="-1") 29 | { 30 | parameters["cursor"]=cursor; 31 | } 32 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 33 | parameters["include_user_entities"]=includeUserEntities?TRUE:FALSE; 34 | //make request 35 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friends_LIST,URLRequestMethod.GET,parameters); 36 | 37 | return request; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_create( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | follow:Boolean=false 14 | ):TwitterRequest 15 | { 16 | //parameters 17 | var parameters:Object=new Object(); 18 | if(userId!=null) 19 | { 20 | parameters["user_id"]=userId; 21 | } 22 | if(screenName!=null) 23 | { 24 | parameters["screen_name"]=screenName; 25 | } 26 | parameters["follow"]=follow?TRUE:FALSE; 27 | //make request 28 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_CREATE,URLRequestMethod.POST,parameters); 29 | 30 | return request; 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_destroy( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | if(userId!=null) 18 | { 19 | parameters["user_id"]=userId; 20 | } 21 | if(screenName!=null) 22 | { 23 | parameters["screen_name"]=screenName; 24 | } 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_DESTROY,URLRequestMethod.POST,parameters); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_incoming.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_incoming( 10 | tokenSet:TwitterTokenSet, 11 | cursor:String="-1" 12 | ):TwitterRequest 13 | { 14 | //parameters 15 | var parameters:Object=new Object(); 16 | parameters["stringify_ids"]=TRUE; 17 | if(cursor!="-1") 18 | { 19 | parameters["cursor"]=cursor; 20 | } 21 | //make request 22 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_INCOMING,URLRequestMethod.GET,parameters); 23 | 24 | return request; 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_lookup.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_lookup( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | if(userId!=null) 18 | { 19 | parameters["user_id"]=userId; 20 | } 21 | if(screenName!=null) 22 | { 23 | parameters["screen_name"]=screenName; 24 | } 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_LOOKUP,URLRequestMethod.GET,parameters); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_outgoing.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_outgoing( 10 | tokenSet:TwitterTokenSet, 11 | cursor:String="-1" 12 | ):TwitterRequest 13 | { 14 | //parameters 15 | var parameters:Object=new Object(); 16 | parameters["stringify_ids"]=TRUE; 17 | if(cursor!="-1") 18 | { 19 | parameters["cursor"]=cursor; 20 | } 21 | //make request 22 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_OUTGOING,URLRequestMethod.GET,parameters); 23 | 24 | return request; 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_show( 10 | tokenSet:TwitterTokenSet, 11 | sourceId:String=null, 12 | sourceScreenName:String=null, 13 | targetId:String=null, 14 | targetScreenName:String=null 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(sourceId!=null) 20 | { 21 | parameters["source_id"]=sourceId; 22 | } 23 | if(sourceScreenName!=null) 24 | { 25 | parameters["source_screen_name"]=sourceScreenName; 26 | } 27 | if(targetId!=null) 28 | { 29 | parameters["target_id"]=targetId; 30 | } 31 | if(targetScreenName!=null) 32 | { 33 | parameters["target_screen_name"]=targetScreenName; 34 | } 35 | //make request 36 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_SHOW,URLRequestMethod.GET,parameters); 37 | 38 | return request; 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_friendships_update.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _friendships_update( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | device:Boolean=false, 14 | retweets:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | parameters["device"]=device?TRUE:FALSE; 28 | parameters["retweets"]=retweets?TRUE:FALSE; 29 | //make request 30 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.friendships_UPDATE,URLRequestMethod.POST,parameters); 31 | 32 | return request; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_geo_id.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _geo_id( 10 | tokenSet:TwitterTokenSet, 11 | placeId:String 12 | ):TwitterRequest 13 | { 14 | //make request 15 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.geo_id__PLACE_ID.replace(":place_id",placeId),URLRequestMethod.GET); 16 | 17 | return request; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_geo_place.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _geo_place( 11 | tokenSet:TwitterTokenSet, 12 | name:String, 13 | containedWithin:String, 14 | token:String, 15 | latitude:String, 16 | longitude:String, 17 | streetAddress:String=null 18 | ):TwitterRequest 19 | { 20 | var parameters:Object=new Object(); 21 | parameters["name"]=encodeText(name); 22 | parameters["contained_within"]=containedWithin; 23 | parameters["token"]=token; 24 | parameters["lat"]=latitude; 25 | parameters["long"]=longitude; 26 | if(streetAddress!=null) 27 | { 28 | parameters["attribute:street_address"]=streetAddress; 29 | } 30 | //make request 31 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.geo_PLACE,URLRequestMethod.POST,parameters); 32 | 33 | return request; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_geo_reverseGeocode.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _geo_reverseGeocode( 10 | tokenSet:TwitterTokenSet, 11 | latitude:String, 12 | longitude:String, 13 | accuracy:String=null, 14 | granularity:String=null, 15 | maxResults:int=0 16 | ):TwitterRequest 17 | { 18 | var parameters:Object=new Object(); 19 | parameters["lat"]=latitude; 20 | parameters["long"]=longitude; 21 | if(accuracy!=null) 22 | { 23 | parameters["accuracy"]=accuracy; 24 | } 25 | if(granularity!=null) 26 | { 27 | parameters["granularity"]=granularity; 28 | } 29 | if(maxResults>0) 30 | { 31 | parameters["max_results"]=maxResults.toString(); 32 | } 33 | //make request 34 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.geo_REVERSE_GEOCODE,URLRequestMethod.GET,parameters); 35 | 36 | return request; 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_geo_search.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _geo_search( 11 | tokenSet:TwitterTokenSet, 12 | latitude:String=null, 13 | longitude:String=null, 14 | query:String=null, 15 | ip:String=null, 16 | accuracy:String=null, 17 | granularity:String=null, 18 | containedWithin:String=null, 19 | streetAddress:String=null, 20 | maxResults:int=0 21 | ):TwitterRequest 22 | { 23 | var parameters:Object=new Object(); 24 | if(latitude!=null) 25 | { 26 | parameters["lat"]=latitude; 27 | } 28 | if(longitude!=null) 29 | { 30 | parameters["long"]=longitude; 31 | } 32 | if(query!=null) 33 | { 34 | parameters["query"]=encodeText(query); 35 | } 36 | if(ip!=null) 37 | { 38 | parameters["ip"]=ip; 39 | } 40 | if(accuracy!=null) 41 | { 42 | parameters["accuracy"]=accuracy; 43 | } 44 | if(granularity!=null) 45 | { 46 | parameters["granularity"]=granularity; 47 | } 48 | if(containedWithin!=null) 49 | { 50 | parameters["contained_within"]=containedWithin; 51 | } 52 | if(streetAddress!=null) 53 | { 54 | parameters["attribute:street_address"]=streetAddress; 55 | } 56 | if(maxResults>0) 57 | { 58 | parameters["max_results"]=maxResults.toString(); 59 | } 60 | //make request 61 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.geo_SEARCH,URLRequestMethod.GET,parameters); 62 | 63 | return request; 64 | } 65 | 66 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_geo_similarPlaces.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _geo_similarPlaces( 11 | tokenSet:TwitterTokenSet, 12 | latitude:String, 13 | longitude:String, 14 | name:String, 15 | containedWithin:String=null, 16 | streetAddress:String=null 17 | ):TwitterRequest 18 | { 19 | var parameters:Object=new Object(); 20 | parameters["lat"]=latitude; 21 | parameters["long"]=longitude; 22 | parameters["name"]=encodeText(name); 23 | if(containedWithin!=null) 24 | { 25 | parameters["contained_within"]=containedWithin; 26 | } 27 | if(streetAddress!=null) 28 | { 29 | parameters["attribute:street_address"]=streetAddress; 30 | } 31 | //make request 32 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.geo_SIMILAR_PLACES,URLRequestMethod.GET,parameters); 33 | 34 | return request; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_help_configuration.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _help_configuration( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.help_CONFIGURATION,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_help_languages.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _help_languages( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.help_LANGUAGES,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_help_privacy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _help_privacy( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.help_PRIVACY,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_help_tos.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _help_tos( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.help_TOS,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_create( 11 | tokenSet:TwitterTokenSet, 12 | name:String, 13 | mode:String="public", 14 | description:String=null 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | parameters["name"]=encodeText(name); 20 | parameters["mode"]=mode; 21 | if(description!=null) 22 | { 23 | parameters["description"]=encodeText(description); 24 | } 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_CREATE,URLRequestMethod.POST,parameters); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_destroy( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(listId!=null) 21 | { 22 | parameters["list_id"]=listId; 23 | } 24 | if(slug!=null) 25 | { 26 | parameters["slug"]=encodeText(slug); 27 | } 28 | if(ownerId!=null) 29 | { 30 | parameters["owner_id"]=ownerId; 31 | } 32 | if(ownerScreenName!=null) 33 | { 34 | parameters["owner_screen_name"]=ownerScreenName; 35 | } 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_DESTROY,URLRequestMethod.POST,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_list.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _lists_list( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | if(userId!=null) 18 | { 19 | parameters["user_id"]=userId; 20 | } 21 | if(screenName!=null) 22 | { 23 | parameters["screen_name"]=screenName; 24 | } 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_LIST,URLRequestMethod.GET,parameters); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_members.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_members( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | cursor:String="-1", 17 | includeEntities:Boolean=true, 18 | skipStatus:Boolean=true 19 | ):TwitterRequest 20 | { 21 | //parameters 22 | var parameters:Object=new Object(); 23 | if(listId!=null) 24 | { 25 | parameters["list_id"]=listId; 26 | } 27 | if(slug!=null) 28 | { 29 | parameters["slug"]=encodeText(slug); 30 | } 31 | if(ownerId!=null) 32 | { 33 | parameters["owner_id"]=ownerId; 34 | } 35 | if(ownerScreenName!=null) 36 | { 37 | parameters["owner_screen_name"]=ownerScreenName; 38 | } 39 | if(cursor!="-1") 40 | { 41 | parameters["cursor"]=cursor; 42 | } 43 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 44 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 45 | //make request 46 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_MEMBERS,URLRequestMethod.GET,parameters); 47 | 48 | return request; 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_members_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_members_create( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | userId:String=null, 17 | screenName:String=null 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(listId!=null) 23 | { 24 | parameters["list_id"]=listId; 25 | } 26 | if(slug!=null) 27 | { 28 | parameters["slug"]=encodeText(slug); 29 | } 30 | if(ownerId!=null) 31 | { 32 | parameters["owner_id"]=ownerId; 33 | } 34 | if(ownerScreenName!=null) 35 | { 36 | parameters["owner_screen_name"]=ownerScreenName; 37 | } 38 | if(userId!=null) 39 | { 40 | parameters["user_id"]=userId; 41 | } 42 | if(screenName!=null) 43 | { 44 | parameters["screen_name"]=screenName; 45 | } 46 | //make request 47 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_members_CREATE,URLRequestMethod.POST,parameters); 48 | 49 | return request; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_members_createAll.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_members_createAll( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | userIds:Array=null, 17 | screenNames:Array=null 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(listId!=null) 23 | { 24 | parameters["list_id"]=listId; 25 | } 26 | if(slug!=null) 27 | { 28 | parameters["slug"]=encodeText(slug); 29 | } 30 | if(ownerId!=null) 31 | { 32 | parameters["owner_id"]=ownerId; 33 | } 34 | if(ownerScreenName!=null) 35 | { 36 | parameters["owner_screen_name"]=ownerScreenName; 37 | } 38 | if(userIds!=null) 39 | { 40 | parameters["user_id"]=encodeText(userIds.join(",")); 41 | } 42 | if(screenNames!=null) 43 | { 44 | parameters["screen_name"]=encodeText(screenNames.join(",")); 45 | } 46 | //make request 47 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_members_CREATE_ALL,URLRequestMethod.POST,parameters); 48 | 49 | return request; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_members_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_members_destroy( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | userId:String=null, 17 | screenName:String=null 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(listId!=null) 23 | { 24 | parameters["list_id"]=listId; 25 | } 26 | if(slug!=null) 27 | { 28 | parameters["slug"]=encodeText(slug); 29 | } 30 | if(ownerId!=null) 31 | { 32 | parameters["owner_id"]=ownerId; 33 | } 34 | if(ownerScreenName!=null) 35 | { 36 | parameters["owner_screen_name"]=ownerScreenName; 37 | } 38 | if(userId!=null) 39 | { 40 | parameters["user_id"]=userId; 41 | } 42 | if(screenName!=null) 43 | { 44 | parameters["screen_name"]=screenName; 45 | } 46 | //make request 47 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_members_DESTROY,URLRequestMethod.POST,parameters); 48 | 49 | return request; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_members_destroyAll.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_members_destroyAll( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | userIds:Array=null, 17 | screenNames:Array=null 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(listId!=null) 23 | { 24 | parameters["list_id"]=listId; 25 | } 26 | if(slug!=null) 27 | { 28 | parameters["slug"]=encodeText(slug); 29 | } 30 | if(ownerId!=null) 31 | { 32 | parameters["owner_id"]=ownerId; 33 | } 34 | if(ownerScreenName!=null) 35 | { 36 | parameters["owner_screen_name"]=ownerScreenName; 37 | } 38 | if(userIds!=null) 39 | { 40 | parameters["user_id"]=encodeText(userIds.join(",")); 41 | } 42 | if(screenNames!=null) 43 | { 44 | parameters["screen_name"]=encodeText(screenNames.join(",")); 45 | } 46 | //make request 47 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_members_DESTROY_ALL,URLRequestMethod.POST,parameters); 48 | 49 | return request; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_members_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_members_show( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | userId:String=null, 17 | screenName:String=null, 18 | includeEntities:Boolean=true, 19 | skipStatus:Boolean=true 20 | ):TwitterRequest 21 | { 22 | //parameters 23 | var parameters:Object=new Object(); 24 | if(listId!=null) 25 | { 26 | parameters["list_id"]=listId; 27 | } 28 | if(slug!=null) 29 | { 30 | parameters["slug"]=encodeText(slug); 31 | } 32 | if(ownerId!=null) 33 | { 34 | parameters["owner_id"]=ownerId; 35 | } 36 | if(ownerScreenName!=null) 37 | { 38 | parameters["owner_screen_name"]=ownerScreenName; 39 | } 40 | if(userId!=null) 41 | { 42 | parameters["user_id"]=userId; 43 | } 44 | if(screenName!=null) 45 | { 46 | parameters["screen_name"]=screenName; 47 | } 48 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 49 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 50 | //make request 51 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_members_SHOW,URLRequestMethod.GET,parameters); 52 | 53 | return request; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_memberships.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _lists_memberships( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | cursor:String="-1", 14 | filterToOwnedLists:Boolean=false 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | if(cursor!="-1") 28 | { 29 | parameters["cursor"]=cursor; 30 | } 31 | parameters["filter_to_owned_lists"]=filterToOwnedLists?TRUE:FALSE; 32 | //make request 33 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_MEMBERSHIPS,URLRequestMethod.GET,parameters); 34 | 35 | return request; 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_show( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(listId!=null) 21 | { 22 | parameters["list_id"]=listId; 23 | } 24 | if(slug!=null) 25 | { 26 | parameters["slug"]=encodeText(slug); 27 | } 28 | if(ownerId!=null) 29 | { 30 | parameters["owner_id"]=ownerId; 31 | } 32 | if(ownerScreenName!=null) 33 | { 34 | parameters["owner_screen_name"]=ownerScreenName; 35 | } 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_SHOW,URLRequestMethod.GET,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_statuses.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_statuses( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | count:int=0, 17 | sinceId:String=null, 18 | maxId:String=null, 19 | includeEntities:Boolean=true, 20 | includeRTs:Boolean=false 21 | ):TwitterRequest 22 | { 23 | //parameters 24 | var parameters:Object=new Object(); 25 | if(listId!=null) 26 | { 27 | parameters["list_id"]=listId; 28 | } 29 | if(slug!=null) 30 | { 31 | parameters["slug"]=encodeText(slug); 32 | } 33 | if(ownerId!=null) 34 | { 35 | parameters["owner_id"]=ownerId; 36 | } 37 | if(ownerScreenName!=null) 38 | { 39 | parameters["owner_screen_name"]=ownerScreenName; 40 | } 41 | if(count>0) 42 | { 43 | parameters["count"]=count.toString(); 44 | } 45 | if(sinceId!=null) 46 | { 47 | parameters["since_id"]=sinceId; 48 | } 49 | if(maxId!=null) 50 | { 51 | parameters["max_id"]=maxId; 52 | } 53 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 54 | parameters["include_rts"]=includeRTs?TRUE:FALSE; 55 | //make request 56 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_STATUSES,URLRequestMethod.GET,parameters); 57 | 58 | return request; 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_subscribers.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_subscribers( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | cursor:String="-1", 17 | includeEntities:Boolean=true, 18 | skipStatus:Boolean=true 19 | ):TwitterRequest 20 | { 21 | //parameters 22 | var parameters:Object=new Object(); 23 | if(listId!=null) 24 | { 25 | parameters["list_id"]=listId; 26 | } 27 | if(slug!=null) 28 | { 29 | parameters["slug"]=encodeText(slug); 30 | } 31 | if(ownerId!=null) 32 | { 33 | parameters["owner_id"]=ownerId; 34 | } 35 | if(ownerScreenName!=null) 36 | { 37 | parameters["owner_screen_name"]=ownerScreenName; 38 | } 39 | if(cursor!="-1"){ 40 | parameters["cursor"]=cursor; 41 | } 42 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 43 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 44 | //make request 45 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_SUBSCRIBERS,URLRequestMethod.GET,parameters); 46 | 47 | return request; 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_subscribers_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_subscribers_create( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(listId!=null) 21 | { 22 | parameters["list_id"]=listId; 23 | } 24 | if(slug!=null) 25 | { 26 | parameters["slug"]=encodeText(slug); 27 | } 28 | if(ownerId!=null) 29 | { 30 | parameters["owner_id"]=ownerId; 31 | } 32 | if(ownerScreenName!=null) 33 | { 34 | parameters["owner_screen_name"]=ownerScreenName; 35 | } 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_subscribers_CREATE,URLRequestMethod.POST,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_subscribers_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_subscribers_destroy( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | if(listId!=null) 21 | { 22 | parameters["list_id"]=listId; 23 | } 24 | if(slug!=null) 25 | { 26 | parameters["slug"]=encodeText(slug); 27 | } 28 | if(ownerId!=null) 29 | { 30 | parameters["owner_id"]=ownerId; 31 | } 32 | if(ownerScreenName!=null) 33 | { 34 | parameters["owner_screen_name"]=ownerScreenName; 35 | } 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_subscribers_DESTROY,URLRequestMethod.POST,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_subscribers_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_subscribers_show( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | userId:String=null, 17 | screenName:String=null, 18 | includeEntities:Boolean=true, 19 | skipStatus:Boolean=true 20 | ):TwitterRequest 21 | { 22 | //parameters 23 | var parameters:Object=new Object(); 24 | if(listId!=null) 25 | { 26 | parameters["list_id"]=listId; 27 | } 28 | if(slug!=null) 29 | { 30 | parameters["slug"]=encodeText(slug); 31 | } 32 | if(ownerId!=null) 33 | { 34 | parameters["owner_id"]=ownerId; 35 | } 36 | if(ownerScreenName!=null) 37 | { 38 | parameters["owner_screen_name"]=ownerScreenName; 39 | } 40 | if(userId!=null) 41 | { 42 | parameters["user_id"]=userId; 43 | } 44 | if(screenName!=null) 45 | { 46 | parameters["screen_name"]=screenName; 47 | } 48 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 49 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 50 | //make request 51 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_subscribers_SHOW,URLRequestMethod.GET,parameters); 52 | 53 | return request; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_subscriptions.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _lists_subscriptions( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | count:int=0, 14 | cursor:String="-1" 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | if(count>0) 28 | { 29 | parameters["count"]=count.toString(); 30 | } 31 | if(cursor!="-1"){ 32 | parameters["cursor"]=cursor; 33 | } 34 | //make request 35 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_SUBSCRIPTIONS,URLRequestMethod.GET,parameters); 36 | 37 | return request; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_lists_update.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _lists_update( 11 | tokenSet:TwitterTokenSet, 12 | listId:String=null, 13 | slug:String=null, 14 | ownerId:String=null, 15 | ownerScreenName:String=null, 16 | name:String=null, 17 | mode:String="public", 18 | description:String=null 19 | ):TwitterRequest 20 | { 21 | //parameters 22 | var parameters:Object=new Object(); 23 | if(listId!=null) 24 | { 25 | parameters["list_id"]=listId; 26 | } 27 | if(slug!=null) 28 | { 29 | parameters["slug"]=encodeText(slug); 30 | } 31 | if(ownerId!=null) 32 | { 33 | parameters["owner_id"]=ownerId; 34 | } 35 | if(ownerScreenName!=null) 36 | { 37 | parameters["owner_screen_name"]=ownerScreenName; 38 | } 39 | if(name!=null) 40 | { 41 | parameters["name"]=encodeText(name); 42 | } 43 | parameters["mode"]=mode; 44 | if(description!=null) 45 | { 46 | parameters["description"]=encodeText(description); 47 | } 48 | //make request 49 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.lists_UPDATE,URLRequestMethod.POST,parameters); 50 | 51 | return request; 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_oauth_accessToken.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _oauth_accessToken( 10 | tokenSet:TwitterTokenSet, 11 | verifier:String 12 | ):TwitterRequest 13 | { 14 | //parameters 15 | var parameters:Object=new Object(); 16 | parameters["oauth_verifier"]=verifier; 17 | //make request 18 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.oauth_ACCESS_TOKEN,URLRequestMethod.POST,parameters); 19 | 20 | return request; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_oauth_requestToken.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _oauth_requestToken( 10 | tokenSet:TwitterTokenSet, 11 | oauth_callback:String="oob" 12 | ):TwitterRequest 13 | { 14 | var parameters:Object=new Object(); 15 | parameters["oauth_callback"]=oauth_callback; 16 | //make request 17 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.oauth_REQUEST_TOKEN,URLRequestMethod.GET,parameters); 18 | 19 | return request; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_savedSearches_create.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _savedSearches_create( 11 | tokenSet:TwitterTokenSet, 12 | query:String 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["query"]=encodeText(query); 18 | //make request 19 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.savedSearches_CREATE,URLRequestMethod.POST,parameters); 20 | 21 | return request; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_savedSearches_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _savedSearches_destroy( 10 | tokenSet:TwitterTokenSet, 11 | id:String 12 | ):TwitterRequest 13 | { 14 | //make request 15 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.savedSearches_destroy__ID.replace(":id",id),URLRequestMethod.POST); 16 | 17 | return request; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_savedSearches_list.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _savedSearches_list( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.savedSearches_LIST,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_savedSearches_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _savedSearches_show( 10 | tokenSet:TwitterTokenSet, 11 | id:String 12 | ):TwitterRequest 13 | { 14 | //make request 15 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.savedSearches_show__ID.replace(":id",id),URLRequestMethod.GET); 16 | 17 | return request; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_search_tweets.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _search_tweets( 11 | tokenSet:TwitterTokenSet, 12 | q:String, 13 | geoCode:String=null, 14 | lang:String=null, 15 | locale:String=null, 16 | resultType:String=null, 17 | count:int=0, 18 | until:String=null, 19 | sinceId:String=null, 20 | maxId:String=null, 21 | includeEntities:Boolean=true 22 | ):TwitterRequest 23 | { 24 | //parameters 25 | var parameters:Object=new Object(); 26 | parameters["q"]=encodeText(q); 27 | if(geoCode!=null){ 28 | parameters["geo_code"]=geoCode; 29 | } 30 | if(lang!=null){ 31 | parameters["lang"]=lang; 32 | } 33 | if(locale!=null){ 34 | parameters["locale"]=locale; 35 | } 36 | if(resultType!=null){ 37 | parameters["result_type"]=resultType; 38 | } 39 | if(count>0){ 40 | parameters["count"]=count.toString(); 41 | } 42 | if(until!=null){ 43 | parameters["until"]=until; 44 | } 45 | if(sinceId!=null){ 46 | parameters["since_id"]=sinceId; 47 | } 48 | if(maxId!=null){ 49 | parameters["max_id"]=maxId; 50 | } 51 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 52 | //make request 53 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.search_TWEETS,URLRequestMethod.GET,parameters); 54 | 55 | return request; 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_destroy.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_destroy( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | trimUser:Boolean=false 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["trim_user"]=trimUser?TRUE:FALSE; 18 | //make request 19 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_destroy__ID.replace(":id",id),URLRequestMethod.POST,parameters); 20 | 21 | return request; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_homeTimeline.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_homeTimeline( 10 | tokenSet:TwitterTokenSet, 11 | count:int=0, 12 | sinceId:String=null, 13 | maxId:String=null, 14 | trimUser:Boolean=false, 15 | excludeReplies:Boolean=false, 16 | contributorDetails:Boolean=false, 17 | includeEntities:Boolean=true 18 | ):TwitterRequest 19 | { 20 | //parameters 21 | var parameters:Object=new Object(); 22 | if(count>0) 23 | { 24 | parameters["count"]=count.toString(); 25 | } 26 | if(sinceId!=null) 27 | { 28 | parameters["since_id"]=sinceId; 29 | } 30 | if(maxId!=null) 31 | { 32 | parameters["max_id"]=maxId; 33 | } 34 | parameters["trim_user"]=trimUser?TRUE:FALSE; 35 | parameters["exclude_replies"]=excludeReplies?TRUE:FALSE; 36 | parameters["contributor_details"]=contributorDetails?TRUE:FALSE; 37 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 38 | //make request 39 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_HOME_TIMELINE,URLRequestMethod.GET,parameters); 40 | 41 | return request; 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_mentionsTimeline.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_mentionsTimeline( 10 | tokenSet:TwitterTokenSet, 11 | count:int=0, 12 | sinceId:String=null, 13 | maxId:String=null, 14 | trimUser:Boolean=false, 15 | contributorDetails:Boolean=false, 16 | includeEntities:Boolean=true 17 | ):TwitterRequest 18 | { 19 | //parameters 20 | var parameters:Object=new Object(); 21 | if(count>0) 22 | { 23 | parameters["count"]=count.toString(); 24 | } 25 | if(sinceId!=null) 26 | { 27 | parameters["since_id"]=sinceId; 28 | } 29 | if(maxId!=null) 30 | { 31 | parameters["max_id"]=maxId; 32 | } 33 | parameters["trim_user"]=trimUser?TRUE:FALSE; 34 | parameters["contributor_details"]=contributorDetails?TRUE:FALSE; 35 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_MENTIONS_TIMELINE,URLRequestMethod.GET,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_oembed.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _statuses_oembed( 11 | tokenSet:TwitterTokenSet, 12 | id:String=null, 13 | url:String=null, 14 | related:Array=null, 15 | maxwidth:uint=0, 16 | align:String=null, 17 | lang:String=null, 18 | hideMedia:Boolean=false, 19 | hideThread:Boolean=false, 20 | omitScript:Boolean=false 21 | ):TwitterRequest 22 | { 23 | //parameters 24 | var parameters:Object=new Object(); 25 | if(id!=null) 26 | { 27 | parameters["id"]=id; 28 | } 29 | if(url!=null) 30 | { 31 | parameters["url"]=encodeText(url); 32 | } 33 | if(related!=null) 34 | { 35 | parameters["related"]=encodeText(related.join(",")); 36 | } 37 | if(maxwidth>0) 38 | { 39 | parameters["maxwidth"]=maxwidth.toString(); 40 | } 41 | if(align!=null) 42 | { 43 | parameters["align"]=align; 44 | } 45 | if(lang!=null) 46 | { 47 | parameters["lang"]=lang; 48 | } 49 | parameters["hide_media"]=hideMedia?TRUE:FALSE; 50 | parameters["hide_thread"]=hideThread?TRUE:FALSE; 51 | parameters["omit_script"]=omitScript?TRUE:FALSE; 52 | //make request 53 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_OEMBED,URLRequestMethod.GET,parameters); 54 | 55 | return request; 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_retweet.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_retweet( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | trimUser:Boolean=false 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["trim_user"]=trimUser?TRUE:FALSE; 18 | //make request 19 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_retweet__ID.replace(":id",id),URLRequestMethod.POST,parameters); 20 | 21 | return request; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_retweets.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_retweets( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | count:int=0, 13 | trimUser:Boolean=false 14 | ):TwitterRequest 15 | { 16 | //parameters 17 | var parameters:Object=new Object(); 18 | if(count>0) 19 | { 20 | parameters["count"]=count.toString(); 21 | } 22 | parameters["trim_user"]=trimUser?TRUE:FALSE; 23 | //make request 24 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_retweets__ID.replace(":id",id),URLRequestMethod.GET,parameters); 25 | 26 | return request; 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_retweetsOfMe.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_retweetsOfMe( 10 | tokenSet:TwitterTokenSet, 11 | count:int=0, 12 | sinceId:String=null, 13 | maxId:String=null, 14 | trimUser:Boolean=false, 15 | includeEntities:Boolean=true, 16 | includeUserEntities:Boolean=true 17 | ):TwitterRequest 18 | { 19 | //parameters 20 | var parameters:Object=new Object(); 21 | if(count>0) 22 | { 23 | parameters["count"]=count.toString(); 24 | } 25 | if(sinceId!=null) 26 | { 27 | parameters["since_id"]=sinceId; 28 | } 29 | if(maxId!=null) 30 | { 31 | parameters["max_id"]=maxId; 32 | } 33 | parameters["trim_user"]=trimUser?TRUE:FALSE; 34 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 35 | parameters["include_user_entities"]=includeUserEntities?TRUE:FALSE; 36 | //make request 37 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_RETWEETS_OF_ME,URLRequestMethod.GET,parameters); 38 | 39 | return request; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_show( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | trimUser:Boolean=false, 13 | includeMyRetweet:Boolean=false, 14 | includeEntities:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | parameters["id"]=id; 20 | parameters["trim_user"]=trimUser?TRUE:FALSE; 21 | parameters["include_my_retweet"]=includeMyRetweet?TRUE:FALSE; 22 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 23 | //make request 24 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_SHOW,URLRequestMethod.GET,parameters); 25 | 26 | return request; 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_update.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _statuses_update( 11 | tokenSet:TwitterTokenSet, 12 | status:String, 13 | inReplyToStatusId:String=null, 14 | latitude:String=null, 15 | longitude:String=null, 16 | placeId:String=null, 17 | displayCoordinates:Boolean=false, 18 | trimUser:Boolean=false 19 | ):TwitterRequest 20 | { 21 | //parameters 22 | var parameters:Object=new Object(); 23 | parameters["status"]=encodeText(status); 24 | if(inReplyToStatusId!=null) 25 | { 26 | parameters["in_reply_to_status_id"]=inReplyToStatusId; 27 | } 28 | if(latitude!=null) 29 | { 30 | parameters["lat"]=latitude; 31 | } 32 | if(longitude!=null) 33 | { 34 | parameters["long"]=longitude; 35 | } 36 | if(placeId!=null) 37 | { 38 | parameters["place_id"]=placeId; 39 | } 40 | parameters["display_coordinates"]=displayCoordinates?TRUE:FALSE; 41 | parameters["trim_user"]=trimUser?TRUE:FALSE; 42 | //make request 43 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_UPDATE,URLRequestMethod.POST,parameters); 44 | 45 | return request; 46 | } 47 | 48 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_updateWithMedia.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | import flash.utils.ByteArray; 6 | 7 | import isle.susisu.twitter.TwitterRequest; 8 | import isle.susisu.twitter.TwitterTokenSet; 9 | import isle.susisu.twitter.utils.MultipartFormData; 10 | 11 | public function _statuses_updateWithMedia( 12 | tokenSet:TwitterTokenSet, 13 | status:String, 14 | media:ByteArray, 15 | possiblySensitive:Boolean=false, 16 | inReplyToStatusId:String=null, 17 | latitude:String=null, 18 | longitude:String=null, 19 | placeId:String=null, 20 | displayCoordinates:Boolean=false 21 | ):TwitterRequest 22 | { 23 | //parameters 24 | var mfd:MultipartFormData=new MultipartFormData(); 25 | mfd.addData("status",status); 26 | mfd.addData("media[]",media); 27 | mfd.addData("possibly_sensitive",possiblySensitive); 28 | if(inReplyToStatusId!=null) 29 | { 30 | mfd.addData("in_reply_to_status_id",inReplyToStatusId); 31 | } 32 | if(latitude!=null) 33 | { 34 | mfd.addData("lat",latitude); 35 | } 36 | if(longitude!=null) 37 | { 38 | mfd.addData("long",longitude); 39 | } 40 | if(placeId!=null) 41 | { 42 | mfd.addData("place_id",placeId); 43 | } 44 | mfd.addData("display_coordinates",displayCoordinates?TRUE:FALSE); 45 | //make request 46 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_UPDATE_WITH_MEDIA,URLRequestMethod.POST,mfd); 47 | 48 | return request; 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_statuses_userTimeline.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _statuses_userTimeline( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | count:int=0, 14 | sinceId:String=null, 15 | maxId:String=null, 16 | excludeReplies:Boolean=false, 17 | contributorDetails:Boolean=false, 18 | includeRTs:Boolean=true 19 | ):TwitterRequest 20 | { 21 | //parameters 22 | var parameters:Object=new Object(); 23 | if(userId!=null) 24 | { 25 | parameters["user_id"]=userId; 26 | } 27 | if(screenName!=null) 28 | { 29 | parameters["screen_name"]=screenName; 30 | } 31 | if(count>0) 32 | { 33 | parameters["count"]=count.toString(); 34 | } 35 | if(sinceId!=null) 36 | { 37 | parameters["since_id"]=sinceId; 38 | } 39 | if(maxId!=null) 40 | { 41 | parameters["max_id"]=maxId; 42 | } 43 | parameters["exclude_replies"]=excludeReplies?TRUE:FALSE; 44 | parameters["contributor_details"]=contributorDetails?TRUE:FALSE; 45 | parameters["include_rts"]=includeRTs?TRUE:FALSE; 46 | //make request 47 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.statuses_USER_TIMELINE,URLRequestMethod.GET,parameters); 48 | 49 | return request; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_trends_available.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _trends_available( 10 | tokenSet:TwitterTokenSet 11 | ):TwitterRequest 12 | { 13 | //make request 14 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.trends_AVAILABLE,URLRequestMethod.GET); 15 | 16 | return request; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_trends_closest.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _trends_closest( 10 | tokenSet:TwitterTokenSet, 11 | latitude:String, 12 | longitude:String 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["lat"]=latitude; 18 | parameters["long"]=longitude; 19 | //make request 20 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.trends_CLOSEST,URLRequestMethod.GET,parameters); 21 | 22 | return request; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_trends_place.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _trends_place( 10 | tokenSet:TwitterTokenSet, 11 | id:String, 12 | exclude:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | parameters["id"]=id; 18 | if(exclude!=null) 19 | { 20 | parameters["exclude"]=exclude; 21 | } 22 | //make request 23 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.trends_PLACE,URLRequestMethod.GET,parameters); 24 | 25 | return request; 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_user.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterStream; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _user( 10 | tokenSet:TwitterTokenSet, 11 | stallWarnings:Boolean=false, 12 | withParam:String="user", 13 | replies:String=null, 14 | track:String=null, 15 | locations:String=null 16 | ):TwitterStream 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | parameters["stall_warnings"]=stallWarnings?TRUE:FALSE; 21 | parameters["with"]=withParam; 22 | if(replies!=null) 23 | { 24 | parameters["replies"]=replies; 25 | } 26 | if(track!=null) 27 | { 28 | parameters["track"]=track; 29 | } 30 | if(locations!=null) 31 | { 32 | parameters["locations"]=locations; 33 | } 34 | //make stream 35 | var stream:TwitterStream=new TwitterStream(tokenSet,TwitterURL.USER,URLRequestMethod.GET,parameters); 36 | 37 | return stream; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_contributees.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_contributees( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | includeEntities:Boolean=true, 14 | skipStatus:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 28 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 29 | //make request 30 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_CONTRIBUTEES,URLRequestMethod.GET,parameters); 31 | 32 | return request; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_contributors.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_contributors( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | includeEntities:Boolean=true, 14 | skipStatus:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userId!=null) 20 | { 21 | parameters["user_id"]=userId; 22 | } 23 | if(screenName!=null) 24 | { 25 | parameters["screen_name"]=screenName; 26 | } 27 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 28 | parameters["skip_status"]=skipStatus?TRUE:FALSE; 29 | //make request 30 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_CONTRIBUTORS,URLRequestMethod.GET,parameters); 31 | 32 | return request; 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_lookup.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _users_lookup( 11 | tokenSet:TwitterTokenSet, 12 | userIds:Array=null, 13 | screenNames:Array=null, 14 | includeEntities:Boolean=true 15 | ):TwitterRequest 16 | { 17 | //parameters 18 | var parameters:Object=new Object(); 19 | if(userIds!=null) 20 | { 21 | parameters["user_id"]=encodeText(userIds.join(",")); 22 | } 23 | if(screenNames!=null) 24 | { 25 | parameters["screen_name"]=encodeText(screenNames.join(",")); 26 | } 27 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 28 | //make request 29 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_LOOKUP,URLRequestMethod.POST,parameters); 30 | 31 | return request; 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_profileBanner.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_profileBanner( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | if(userId!=null) 18 | { 19 | parameters["user_id"]=userId; 20 | } 21 | if(screenName!=null) 22 | { 23 | parameters["screen_name"]=screenName; 24 | } 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_PROFILE_BANNER,URLRequestMethod.GET,parameters); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_reportSpam.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_reportSpam( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | if(userId!=null) 18 | { 19 | parameters["user_id"]=userId; 20 | } 21 | if(screenName!=null) 22 | { 23 | parameters["screen_name"]=screenName; 24 | } 25 | //make request 26 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_REPORT_SPAM,URLRequestMethod.POST,parameters); 27 | 28 | return request; 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_search.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | import isle.susisu.twitter.utils.encodeText; 9 | 10 | public function _users_search( 11 | tokenSet:TwitterTokenSet, 12 | q:String, 13 | count:int=0, 14 | page:int=0, 15 | includeEntities:Boolean=true 16 | ):TwitterRequest 17 | { 18 | //parameters 19 | var parameters:Object=new Object(); 20 | parameters["q"]=encodeText(q); 21 | if(count>0) 22 | { 23 | parameters["count"]=count.toString(); 24 | } 25 | if(page>0) 26 | { 27 | parameters["page"]=page.toString(); 28 | } 29 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 30 | //make request 31 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_SEARCH,URLRequestMethod.GET,parameters); 32 | 33 | return request; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_show.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_show( 10 | tokenSet:TwitterTokenSet, 11 | userId:String=null, 12 | screenName:String=null, 13 | includeEntities:Boolean=true 14 | ):TwitterRequest 15 | { 16 | //parameters 17 | var parameters:Object=new Object(); 18 | if(userId!=null) 19 | { 20 | parameters["user_id"]=userId; 21 | } 22 | if(screenName!=null) 23 | { 24 | parameters["screen_name"]=screenName; 25 | } 26 | parameters["include_entities"]=includeEntities?TRUE:FALSE; 27 | //make request 28 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_SHOW,URLRequestMethod.GET,parameters); 29 | 30 | return request; 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_suggestions.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_suggestions( 10 | tokenSet:TwitterTokenSet, 11 | lang:String=null 12 | ):TwitterRequest 13 | { 14 | //parameters 15 | var parameters:Object=new Object(); 16 | if(lang!=null) 17 | { 18 | parameters["lang"]=lang; 19 | } 20 | //make request 21 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_SUGGESTIONS,URLRequestMethod.GET,parameters); 22 | 23 | return request; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_suggestionsSlug.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_suggestionsSlug( 10 | tokenSet:TwitterTokenSet, 11 | slug:String, 12 | lang:String=null 13 | ):TwitterRequest 14 | { 15 | //parameters 16 | var parameters:Object=new Object(); 17 | if(lang!=null) 18 | { 19 | parameters["lang"]=lang; 20 | } 21 | //make request 22 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_suggestions__SLUG.replace(":slug",slug),URLRequestMethod.GET,parameters); 23 | 24 | return request; 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/api/_users_suggestions_members.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.api 2 | { 3 | 4 | import flash.net.URLRequestMethod; 5 | 6 | import isle.susisu.twitter.TwitterRequest; 7 | import isle.susisu.twitter.TwitterTokenSet; 8 | 9 | public function _users_suggestions_members( 10 | tokenSet:TwitterTokenSet, 11 | slug:String 12 | ):TwitterRequest 13 | { 14 | //make request 15 | var request:TwitterRequest=new TwitterRequest(tokenSet,TwitterURL.users_suggestions__slug_MEMBERS.replace(":slug",slug),URLRequestMethod.GET); 16 | 17 | return request; 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/events/TwitterErrorEvent.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.events{ 2 | 3 | import flash.events.Event; 4 | 5 | public class TwitterErrorEvent extends Event{ 6 | 7 | public static const CLIENT_ERROR:String="clientError"; 8 | public static const SERVER_ERROR:String="serverError"; 9 | 10 | public var statusCode:int; 11 | public var message:String; 12 | 13 | public function TwitterErrorEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false,statusCode:int=0,message:String=""){ 14 | super(type,bubbles,cancelable); 15 | this.statusCode=statusCode; 16 | this.message=message; 17 | } 18 | 19 | override public function clone():Event{ 20 | return (new TwitterErrorEvent(type,bubbles,cancelable,statusCode,message)); 21 | } 22 | 23 | override public function toString():String{ 24 | return formatToString("TwitterErrorEvent","type","bubbles","cancelable","statusCode","message"); 25 | } 26 | 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/events/TwitterRequestEvent.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.events{ 2 | 3 | import flash.events.Event; 4 | 5 | public class TwitterRequestEvent extends Event{ 6 | 7 | public static const COMPLETE:String="complete"; 8 | 9 | public function TwitterRequestEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false){ 10 | super(type,bubbles,cancelable); 11 | } 12 | 13 | override public function clone():Event{ 14 | return (new TwitterRequestEvent(type,bubbles,cancelable)); 15 | } 16 | 17 | override public function toString():String{ 18 | return formatToString("TwitterRequestEvent","type","bubbles","cancelable"); 19 | } 20 | 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/events/TwitterStreamEvent.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.events{ 2 | 3 | import flash.events.Event; 4 | 5 | public class TwitterStreamEvent extends Event{ 6 | 7 | public static const CONNECTED:String="connected"; 8 | public static const DISCONNECTED:String="disconnected"; 9 | public static const MESSAGE_RECEIVED:String="messageReceived"; 10 | 11 | public var message:String; 12 | 13 | public function TwitterStreamEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false,message:String=""){ 14 | super(type,bubbles,cancelable); 15 | this.message=message; 16 | } 17 | 18 | override public function clone():Event{ 19 | return (new TwitterStreamEvent(type,bubbles,cancelable,message)); 20 | } 21 | 22 | override public function toString():String{ 23 | return formatToString("TwitterStreamEvent","type","bubbles","cancelable","message"); 24 | } 25 | 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/utils/MultipartFormData.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.utils 2 | { 3 | import flash.utils.ByteArray; 4 | 5 | public class MultipartFormData extends Object 6 | { 7 | 8 | private var _dataList:Object; 9 | private var _boundary:String; 10 | 11 | public function MultipartFormData(boundary:String=null) 12 | { 13 | _dataList=new Object(); 14 | if(boundary!=null) 15 | { 16 | _boundary=boundary; 17 | } 18 | else 19 | { 20 | _boundary="------------------------------"+makeNonce(); 21 | } 22 | } 23 | 24 | public function get boundary():String 25 | { 26 | return _boundary; 27 | } 28 | 29 | public function addData(name:String,data:Object,fileName:String=null,mimeType:String=null):void 30 | { 31 | _dataList[name]={ 32 | data:data, 33 | fileName:fileName, 34 | mimeType:mimeType 35 | }; 36 | } 37 | 38 | public function getByteArray():ByteArray 39 | { 40 | var byteArray:ByteArray=new ByteArray(); 41 | byteArray.writeUTFBytes("--"+_boundary); 42 | for(var name:String in _dataList) 43 | { 44 | byteArray.writeUTFBytes("\r\n"); 45 | byteArray.writeUTFBytes("Content-Disposition: form-data; name=\""+name+"\""); 46 | if(_dataList[name].fileName!=null) 47 | { 48 | byteArray.writeUTFBytes("; filename=\""+_dataList[name].fileName+"\""); 49 | } 50 | byteArray.writeUTFBytes("\r\n"); 51 | if(_dataList[name].mimeType!=null) 52 | { 53 | byteArray.writeUTFBytes("Content-Type: "+_dataList[name].mimeType+"\r\n"); 54 | } 55 | byteArray.writeUTFBytes("\r\n"); 56 | if(_dataList[name].data is ByteArray) 57 | { 58 | byteArray.writeBytes(_dataList[name].data); 59 | } 60 | else 61 | { 62 | byteArray.writeUTFBytes(_dataList[name].data.toString()); 63 | } 64 | byteArray.writeUTFBytes("\r\n"); 65 | byteArray.writeUTFBytes("--"+_boundary); 66 | } 67 | byteArray.writeUTFBytes("--"); 68 | return byteArray; 69 | } 70 | 71 | } 72 | 73 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/utils/encodeText.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.utils 2 | { 3 | 4 | public function encodeText(text:String):String 5 | { 6 | var encodedText:String=encodeURIComponent(text) 7 | .replace(/\!/g,"%21") 8 | .replace(/\'/g,"%27") 9 | .replace(/\(/g,"%28") 10 | .replace(/\)/g,"%29") 11 | .replace(/\*/g,"%2A"); 12 | return encodedText; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/utils/getOAuthParameters.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.utils 2 | { 3 | 4 | import isle.susisu.twitter.TwitterTokenSet; 5 | 6 | public function getOAuthParameters(tokenSet:TwitterTokenSet):Object 7 | { 8 | //parameters 9 | var parameters:Object=new Object(); 10 | parameters["oauth_version"]="1.0"; 11 | //timestamp should be seconds, not milliseconds! 12 | parameters["oauth_timestamp"]=Math.floor((new Date()).time/1000).toString(); 13 | //random string 14 | parameters["oauth_nonce"]=makeNonce(); 15 | //for Twitter, HMAC-SHA1 16 | parameters["oauth_signature_method"]="HMAC-SHA1"; 17 | parameters["oauth_consumer_key"]=tokenSet.consumerKey; 18 | if(tokenSet.oauthToken!="") 19 | { 20 | parameters["oauth_token"]=tokenSet.oauthToken; 21 | } 22 | return parameters; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/utils/makeAuthorizationHeader.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.utils 2 | { 3 | 4 | import flash.net.URLRequestHeader; 5 | 6 | public function makeAuthorizationHeader(parameters:Object):URLRequestHeader 7 | { 8 | var header:URLRequestHeader=new URLRequestHeader("Authorization"); 9 | var value:String="OAuth "; 10 | for(var key:String in parameters) 11 | { 12 | value+=key+"=\""+parameters[key]+"\","; 13 | } 14 | value=value.substr(0,value.length-1); 15 | header.value=value; 16 | 17 | return header; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /twitter/examples/isle/susisu/twitter/utils/makeNonce.as: -------------------------------------------------------------------------------- 1 | package isle.susisu.twitter.utils 2 | { 3 | 4 | public function makeNonce(length:uint=16):String 5 | { 6 | var strLen:int=STRING_SEQUENCE.length; 7 | var nonce:String=""; 8 | for(var i:int=0;i