diff --git a/fbsdk/fbsdk-tests.ts b/fbsdk/fbsdk-tests.ts new file mode 100644 index 000000000..e359369ad --- /dev/null +++ b/fbsdk/fbsdk-tests.ts @@ -0,0 +1,29 @@ +/// + +window.fbAsyncInit = function() { + FB.init( + { + appId : '{your-app-id}', + xfbml : true, + version : 'v2.0' + } + ); + + FB.ui( + { + method: 'share', + href: 'https://developers.facebook.com/docs/dialogs/' + }, + function(response) { + console.log(response); + } + ); + + FB.api( + "/me", + "POST", + function (fbResponse){ + console.log(fbResponse); + } + ); +}; \ No newline at end of file diff --git a/fbsdk/fbsdk.d.ts b/fbsdk/fbsdk.d.ts new file mode 100644 index 000000000..146f7d76a --- /dev/null +++ b/fbsdk/fbsdk.d.ts @@ -0,0 +1,134 @@ +// Type definitions for Facebook Javascript SDK +// Project: https://developers.facebook.com/docs/javascript +// Definitions by: Joshua Strobl +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface FBInitParams{ + appId ?: string; + authResponse ?: string; + cookie ?: boolean; + frictionlessRequests ?: boolean; + hideFlashCallback ?: Function; + logging ?: boolean; + status ?: boolean; + version ?: string; + xfbml ?: boolean; +} + +interface FBUIParams{ + method : string; +} + +interface FBLoginOptions{ + auth_type ?: string; + scopes ?: string; + return_scopes ?: boolean; + enable_profile_selector ?: boolean; + profile_selector_ids ?: string; +} + +interface FBSDKEvents{ + /* This method allows you to subscribe to a range of events, and define callback functions for when they fire. */ + subscribe(event : string, callback : (fbResponseObject : Object) => any) : void; + + /* This method allows you to un-subscribe a callback from any events previously subscribed to using .Event.subscribe(). */ + unsubscribe(event : string, callback : (fbResponseObject : Object) => any) : void; +} + +interface FBSDKXFBML{ + /* This function parses and renders XFBML markup in a document on the fly. */ + parse(ParseElement ?: Element) : void; + parse(ParseElement ?: HTMLElement) : void; +} + +interface FBSDKCanvasPrefetcher{ + /* Tells Facebook that the current page uses a specified resource. */ + addStaticResource(res : string) : void; + + /* Controls how statistics are collected on resources used by your application. */ + setCollectionMode(option : string) : void; +} + +interface FBSDKCanvasSize{ + height ?: Number; + width ?: Number; +} + +interface FBSDKCanvasDoneLoading{ + time_delta_ms : Number; +} + +interface FBSDKCanvas{ + Prefetcher : FBSDKCanvasPrefetcher; + + /* Hides the HTML element passed in via the elem param from view. */ + hideFlashElement(element : Element) : void; + hideFlashElement(element : HTMLElement) : void; + + /* Displays the HTML element passed in via the elem param, after it has been hidden via FB.Canvas.hideFlashElement. */ + showFlashElement(element : Element) : void; + showFlashElement(element : HTMLElement) : void; + + /* Tells Facebook to scroll to a specific location of your canvas page. */ + scrollTo(x : Number, y : Number) : void; + + /* Starts or stops a timer which will grow your iframe to fit the content every few milliseconds. */ + setAutoGrow(stopTimer : boolean) : void; + setAutoGrow(diffInterval : Number) : void; + setAutoGrow(stopTimer : boolean, diffInterval : Number) : void + + /* Tells Facebook to resize your iframe. */ + setSize(canvasSizeOptions : FBSDKCanvasSize) : void; + + /* Registers the callback for inline processing (i.e. without page reload) of user actions when they click on any link to the current app from Canvas */ + setUrlHandler(handler ?: Function) : string; + + /* Calls you back with an integer, in milliseconds, of the timing of the page load, beginning from the time when the first bytes arrive on + the client, and ending from the point at which you call this function. + */ + setDoneLoading(handler ?: Function) : FBSDKCanvasDoneLoading; + + /* Call startTimer to resume the timer after a period of time for the page load that you didn't wish to measure, which you began by calling stopTimer. */ + startTimer() : void; + + /* Call stopTimer when you wish to stop timing the page load for a period of time */ + stopTimer(handler ?: (fbResponseObject : Object) => any) : void; +} + +interface FBSDK{ + /* This method is used to initialize and setup the SDK. */ + init(fbInitObject : FBInitParams) : void; + + /* This method lets you make calls to the Graph API. */ + api(path : string, method ?: string, params ?: Object, callback : (fbResponseObject : Object) => any) : Object; + + /* This method is used to trigger different forms of Facebook created UI dialogs. */ + ui(params : FBUIParams, handler : (fbResponseObject : Object) => any) : void; + + /* Allows you to determine if a user is logged in to Facebook and has authenticated your app */ + getLoginStatus(handler : Function, force ?: Boolean) : void; + + /* Calling FB.login prompts the user to authenticate your application using the Login Dialog. */ + login(handler : (fbResponseObject : Object) => any, params ?: FBLoginOptions): void; + + /* Log the user out of your site and Facebook */ + logout(handler : (fbResponseObject : Object) => any) : void; + + /* Synchronous accessor for the current authResponse. */ + getAuthResponse() : Object; + + Event : FBSDKEvents; + XFBML : FBSDKXFBML; + Canvas : FBSDKCanvas; +} + +interface FBWindow extends Window { + fbAsyncInit() : any; +} + +declare module "FB" { + export = FB; +} + +declare var FB : FBSDK; +declare var window : FBWindow; \ No newline at end of file