File: n_twitter.sru
Size: 3383
Date: Mon, 31 Dec 2018 21:14:39 +0100
$PBExportHeader$n_twitter.sru
$PBExportComments$Twitter OAuth Object
forward
global type n_twitter from n_oauth
end type
end forward

global type n_twitter from n_oauth
string is_useragent = ""
end type

type variables
Private:

Constant String API_BASE_URL = "https://api.twitter.com"

end variables

forward prototypes
public function boolean of_status_update (string as_statusmsg)
public function boolean of_user_timeline (string as_screen_name, integer ai_count)
end prototypes

public function boolean of_status_update (string as_statusmsg);// ----------------------------------------------------------------------------------------
// SCRIPT:     of_Status_Update
//
// PURPOSE:    This function sends a status update (tweet a message).
//
// ARGUMENTS:  as_statusmsg   -  The message being sent
//
// RETURN:     True=success, False=error occurred
//
// DATE        PROG/ID        DESCRIPTION OF CHANGE / REASON
// --------    -------------  -------------------------------------------------------------
// 11/24/2016  Roland Smith   Initial Creation
// ----------------------------------------------------------------------------------------

String ls_TwitterURL, ls_ContentType, ls_Authorization
String ls_Parms[], ls_Values[], ls_Method, ls_SendMsg

ls_Parms[1]  = "status"
ls_Values[1] = as_statusmsg
ls_Method    = "POST"
ls_SendMsg   = "status=" + of_URLEncode(as_statusmsg)

ls_TwitterURL    = API_BASE_URL + "/1.1/statuses/update.json"
ls_ContentType   = "application/x-www-form-urlencoded;charset=UTF-8"
ls_Authorization = "OAuth " + of_GetOAuthHeader(ls_Method, &
                     ls_TwitterURL, ls_Parms, ls_Values)

Return of_HTTPSend(ls_Method, ls_TwitterURL, &
            ls_ContentType, ls_Authorization, ls_SendMsg)

end function

public function boolean of_user_timeline (string as_screen_name, integer ai_count);// ----------------------------------------------------------------------------------------
// SCRIPT:     of_User_Timeline
//
// PURPOSE:    This function returns the users timeline.
//
// ARGUMENTS:  as_screen_name -  The Twitter account screen name
//             ai_count       -  The max number of entries to return
//
// RETURN:     True=success, False=error occurred
//
// DATE        PROG/ID        DESCRIPTION OF CHANGE / REASON
// --------    -------------  -------------------------------------------------------------
// 12/8/2016   Roland Smith   Initial Creation
// ----------------------------------------------------------------------------------------

String ls_BearerURL, ls_BearerToken
String ls_TwitterURL, ls_ContentType, ls_Authorization
String ls_Parms[], ls_Values[], ls_SendMsg

// get a bearer token
ls_BearerURL = API_BASE_URL + "/oauth2/token"
ls_BearerToken = of_GetBearerToken(ls_BearerURL)
If ls_BearerToken = "" Then
   Return False
End If

ls_Parms[1]  = "count"
ls_Values[1] = String(ai_count)
ls_Parms[2]  = "screen_name"
ls_Values[2] = as_screen_name

ls_TwitterURL    = API_BASE_URL + "/1.1/statuses/user_timeline.json"
ls_ContentType   = "application/x-www-form-urlencoded;charset=UTF-8"
ls_Authorization = "Bearer " + ls_BearerToken
ls_SendMsg = of_CombineParms(ls_Parms, ls_Values)

Return of_HTTPSend("GET", ls_TwitterURL, &
            ls_ContentType, ls_Authorization, ls_SendMsg)

end function

on n_twitter.create
call super::create
end on

on n_twitter.destroy
call super::destroy
end on