Comments 0

Document transcript

TIBCO ActiveMatrix BusinessWorksPlug-in for FacebookUser's GuideSoftware Release 1.0May 2012ContentsImportant Information............................................................................................5Preface.....................................................................................................................7Related Documentation............................................................................................................8Connecting with TIBCO Resources........................................................................................10Chapter 1 Introduction....................................................................11Plug-In Overview....................................................................................................................12Activity Overview....................................................................................................................13Chapter 2 Authentication and Authorization Example.................15Introduction to Facebook Authentication................................................................................16Preparing Your Example App..................................................................................................17Generating Extended Authentication Tokens..........................................................................18Chapter 3 Facebook Palette............................................................19Graph Query Activity..............................................................................................................20Graph Query Configuration Tab...................................................................................20Graph Query Input Tab................................................................................................20Graph Query Output Tab.............................................................................................21Graph Query Error Output Tab....................................................................................21Graph Query Example Scenario.................................................................................22Graph Query Troubleshooting......................................................................................23Search Activity........................................................................................................................24Search Configuration Tab............................................................................................24Search Input Tab..........................................................................................................24Search Output Tab.......................................................................................................25Search Error Output Tab..............................................................................................25Search Example Scenario...........................................................................................25FQL Query Activity.................................................................................................................27FQL Query Configuration Tab......................................................................................27FQL Query Input Tab...................................................................................................28FQL Query Output Tab................................................................................................28FQL Query Error Output Tab.......................................................................................28FQL Query Example Scenario....................................................................................29Publish Activity.......................................................................................................................30Publish Configuration Tab............................................................................................30Publish Input Tab.........................................................................................................31Publish Output Tab......................................................................................................31TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookTOC | 3Publish Error Output Tab.............................................................................................31Publish Example Scenario...........................................................................................32Delete Activity.........................................................................................................................34Delete Configuration Tab.............................................................................................34Delete Input Tab...........................................................................................................35Delete Output Tab........................................................................................................35Delete Error Output Tab...............................................................................................35Delete Activity Troubleshooting....................................................................................36RealTimeListener Activity.......................................................................................................37RealTimeListener Configuration Tab...........................................................................37RealTimeListener Output Tab......................................................................................38RealTimeListener Error Output Tab.............................................................................38RealTimeListener Example Scenario..........................................................................39Chapter 4 Troubleshooting and Errors..........................................41Troubleshooting Overview......................................................................................................42Troubleshooting Activity Errors...............................................................................................43Facebook Plug-in Exceptions.................................................................................................44Chapter 5 Process Example............................................................45Example Overview.................................................................................................................46Creating the Parsing Page Feeds Process.............................................................................47Creating the Product Direction Process.................................................................................49TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook4 | TOCImportant InformationSOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDEDOR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITEDADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLEDSOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BYANY OTHER TIBCO SOFTWARE ORFOR ANY OTHER PURPOSE.USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONSOF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSEAGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USERLICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THESOFTWARE (AND WHICH IS DUPLICATED IN THE LICENSE FILE) OR IF THERE IS NO SUCH SOFTWARELICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATEDIN THE “LICENSE” FILE(S) OF THE SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSETERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF ANDAN AGREEMENT TO BE BOUND BY THE SAME.This document contains confidential information that is subject to U.S. and international copyright laws andtreaties. No part of this document may be reproduced in any form without the written authorization of TIBCOSoftware Inc.TIBCO, The Power of Now, TIBCO ActiveMatrix BusinessWorks, TIBCO Rendezvous, TIBCO Administrator,and TIBCO Enterprise Message Service are either registered trademarks or trademarks of TIBCO SoftwareInc. in the United States and/or other countries.EJB, Java EE, J2EE, and all Java-based trademarks and logos are trademarks or registered trademarks of SunMicrosystems, Inc. in the U.S. and other countries.All other product and company names and marks mentioned in this document are the property of theirrespective owners and are mentioned for identification purposes only.THIS SOFTWARE MAY BE AVAILABLE ON MULTIPLE OPERATING SYSTEMS. HOWEVER, NOT ALLOPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASED AT THESAME TIME. SEE THE README FILE FOR THE AVAILABILITY OF THIS SOFTWARE VERSION ON ASPECIFIC OPERATING SYSTEM PLATFORM.THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS ORIMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.CHANGES ARE PERIODICALLYADDED TO THE INFORMATION HEREIN; THESE CHANGES WILLBE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKEIMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBEDIN THIS DOCUMENT AT ANY TIME.THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY ORINDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE, INCLUDINGBUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.Copyright (c) 2012 TIBCO Software Inc. ALL RIGHTS RESERVED.TIBCO Software Inc. Confidential InformationTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookPrefaceThe TIBCO ActiveMatrix BusinessWorks™ integration platform enables companies to rapidly integratesystems and automate business processes. The TIBCO BusinessWorks Plug-in for Facebook allows ActiveMatrixBusinessWorks customers to navigate, query, and interact with the Facebook social graph without any codingby using the activities in the Facebook palette.Related TopicsRelated Documentation on page 8Connecting with TIBCO Resources on page 10TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookRelated DocumentationThis section lists documentation resources you may find useful.TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook DocumentationThe following documents form the TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook documentationset.• TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook Installation. Read this manual for instructions onsite preparation and installation.• TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook User's Guide. Read this manual for information onhow to use the product.• TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook Release Notes. Read the release notes for a list features.This document also contains lists of known issues and closed issues for this release.TIBCO ActiveMatrix BusinessWorks DocumentationTIBCO ActiveMatrix BusinessWorks is a prerequisite for the TIBCO ActiveMatrix BusinessWorks Plug-infor Facebook. The TIBCO ActiveMatrix BusinessWork documentation set includes the following documents.• TIBCO ActiveMatrix BusinessWorks Concepts. Read this manual before reading any other manual in thedocumentation set. This manual describes terminology and concepts of TIBCO ActiveMatrix BusinessWorks,and the other manuals in the documentation set assume you are familiar with the information in thismanual.• TIBCO ActiveMatrix BusinessWorks Getting Started. Steps you through a very simple example of designing,deploying, and monitoring a ActiveMatrix BusinessWorks process.• ActiveMatrix BusinessWorks Process Design Guide. Describes how to create, edit, and test business processesusing TIBCO ActiveMatrix BusinessWorks.• ActiveMatrix BusinessWorks Palette Reference Describes each of the palettes available in TIBCO ActiveMatrixBusinessWorks.• TIBCO ActiveMatrix BusinessWorks Administration. Describes how to use TIBCO Administrator to deploy,manage, and monitor TIBCO ActiveMatrix BusinessWorks processes.• TIBCO ActiveMatrix BusinessWorks Installation. Read this manual for information on installing one or morecomponents of ActiveMatrix BusinessWorks and setting up a ActiveMatrix BusinessWorks domain.• TIBCO ActiveMatrix BusinessWorks Error Codes. Describes errors returned by TIBCO ActiveMatrixBusinessWorks.• TIBCO ActiveMatrix BusinessWorks Release Notes. Read the release notes for a list of new and changedfeatures. This document also contains lists of known issues and closed issues for this release.Other TIBCO ProductsThe following products are tightly integrated with TIBCO ActiveMatrix BusinessWorks and with the Plug-infor Facebook.• TIBCO Designer™ software. An easy to use graphical user interface for design-time configuration ofTIBCO applications. TIBCO Designer includes online help for each palette.• TIBCO Administrator™ software. TIBCO Administrator is the monitoring and managing interface fornew-generation TIBCO products such as TIBCO ActiveMatrix BusinessWorks.• TIBCO Adapter softwareTIBCO ActiveMatrix BusinessWorks Plug-in for Facebook8 | PrefaceThird-Party DocumentationFacebook developer documentation discusses the Facebook social graph in detail, describes the authenticationand authorization process, and explains how Facebook permissions work. For up-to-date information onthose topics and other topics relevant to using the plugin, go to the Facebook Developer Documentation.Related TopicsPreface on page 7TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookPreface | 9Connecting with TIBCO ResourcesHow to Join TIBCOmmunityTiBCOmmunity is an online destination for TIBCO customers, partners, and resident experts. It is a place toshare and access the collective experience of the TIBCO community. TIBCOmmunity offers forums, blogs,and access to a variety of resources. To register, go to http://www.tibcommunity.com.How to Access TIBCO DocumentationAfter you join TIBCOmmunity, you can access the documentation here: http://docs.tibco.com.How to Contact TIBCO SupportFor comments or problems with this manual or the software it addresses, contact TIBCO Support as follows:• For an overview of TIBCO Support, and information about getting started with TIBCO Support, visit thissite:http://www.tibco.com/services/support• If you already have a valid maintenance or support contract, visit this site:https://support.tibco.comEntry to this site requires a username and password. If you do not have a username, you can request one.Related TopicsPreface on page 7TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook10 | PrefaceChapter1IntroductionBefore you start using the activities in the TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook palette, youneed an overview of the plug-in and of the different activities.Topics• Plug-In Overview• Activity OverviewTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookPlug-In OverviewTIBCO ActiveMatrix BusinessWorks is a scalable, extensible, and easy to use integration platform that allowsyou to develop integration projects. TIBCO ActiveMatrix BusinessWorks uses the TIBCO Designer graphicaluser interface (GUI) for defining business processes and the TIBCO ActiveMatrix BusinessWorks processengine executes the business processes. For a detailed discussion, see TIBCO ActiveMatrix BusinessWorksConcepts.ActiveMatrix BusinessWorks supports plug-ins. When you install a plug-in, activities for the plug-in becomeavailable in the TIBCO Designer interface. You can add the plug-in activities to the business process you aredesigning, and integrate them with the process flow. At runtime, the plug-in activities are executed as partof the ActiveMatrix BusinessWorks process execution.The TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook is unique in its powerful integration capabilities,and also unique in its dependency on another company's product. Because the plug-in uses the public APIof the platform, in this case, the Facebook Graph API, any open issues that have been reported against thethird-party API result in problems with the plug-in. If Facebook makes changes to their public API, theactivities functionality might become limited or might change.Because the information about the activities is easy to extract from the Facebook Developer documentation,this manual's focus is on an overview of each activity's tab. The manual also includes a typical examplescenario for each activity. For example, the Graph Query example scenario queries the feed for a user youspecify.Related TopicsIntroduction on page 11TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook12 | IntroductionActivity OverviewWhen you start working with the plug-in, you might initially have some questions about the activities.Search, Graph Query, and FQL Query ActivitiesThe Search, Graph Query, and FQL Query activities allow you to mine the Facebook social graph for data.You can direct each of the activities to other TIBCO ActiveMatrix BusinessWorks activities to filter theinformation you retrieve.On the Input tab of each of the three activities includes the following fields.pageSizeNumber of iterms included in each retrieval. Default is 1.maxNumOfPagesNumber of retrieval operations each time the process is run. Default is 1.For example, if you set maxNumOfPages to 2 and page_Size to 3, the system retrieves six items. If you setmaxNumOfPages to 1 and page_Size to 4, the system retrieves four items.You use the different data retrieval activities in different situations.SearchAllows you to perform a simple search over the whole Facebook user space. You cannot restrict thesearch parameters, though you could filter the output with another BusinessWorks activity.Graph QueryAllows you to query an object and associated connections, for example, a user's friends or a user's post.You must specify the object ID for the object you want to retrieve information about.FQL QueryAllows you to perform a database query using Facebook Query Language. You can specify a user namewhen you use FQL, but you do not need the user ID.Publish and Delete ActivitiesPublish and Delete activities add objects or remove objects. These activities modify the space of the user orother object. The app that is associated with the TIBCO BusinessWorks ActiveMatrix Plug-in for Facebookmust have permission to perform the activities.As a rule, the user associated with the app and the app itself must be friends of a user to publish to a user'spage or to remove items from a user's page. The app can only remove items that it published earlier.A further restriction is that the TIBCO BusinessWorks ActiveMatrix plug-in can delete only objects that theplug-in posted. Even if the user associated with the plug-in app made a change using the Facebook UI, theplug-in cannot undo that change.Related TopicsIntroduction on page 11TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookIntroduction | 13Chapter2Authentication and Authorization ExampleThe Facebook Platform uses the OAuth 2.0 protocol for authentication and authorization. The protocol itself andhow Facebook uses the protocol can change at any time. This document therefore provides only an example.Topics• Introduction to Facebook Authentication• Preparing Your Example App• Generating Extended Authentication TokensTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookIntroduction to Facebook AuthenticationEach activity in the plug-in includes a token field in the Input tab. You must include an authentication tokenin the token field to run the process.The Facebook implementation of the OAuth 2.0 protocol consists of three steps:User authenticationEnsures that the user who logs into Facebook is a valid Facebook user, that is, a user with a valid Facebookuser name and password.App authorizationEnsures that when your app asks a user for access, the user knows exactly what data and capabilitiesthey are providing to your application.Most ActiveMatrix BusinessWorks Plug-in for Facebook applications do not ask users for access butwork with publicly available user data instead.App authenticationEnsures that users can be sure they are giving data to your app and not to a different app.After your app completes these steps, the app is issued an access token that allows the app to access the user'sinformation if it has appropriate permissions. For example, you app might be able to examine the posts of auser and of all friends of the user.For background information on Facebook Authentication, go to the Core Concepts section of theFacebook Developer documentation and select Authenticating an App in the sidebar. Do not click oneof the authentication flow links on the first page.Related TopicsAuthentication and Authorization Example on page 15TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook16 | Authentication and Authorization ExamplePreparing Your Example AppBefore you beginYou can run some Facebook examples without authentication tokens, and you can generate a token for verylimited use with just one user. However, if you want to follow this example to generate a token for longeruse, you should make sure you have two Facebook users that are friends.App_adminA user who logs in to create or run the app.App_userA user who represents the company that runs the application. This user friends other users, therebygaining access to the data of the company's friends.It is possible to have one user act as App_admin and App_user, but a clean separation between the applicationcreator and the company representative is useful.About this taskFor this example, you have to create an app and set up appropriate permissions for the App_admin andApp_user users.This example illustrates one way of using authentication tokens. How you set up your environmentdepends on what you want to do and on what Facebook supports.Procedure1.Log in as App_admin and create an app with the privacy settings you want to use. See the FacebookDeveloper documentation, especially the tutorial.Facebook generates an App ID and an App Secret and makes it available to App_admin through a redirectURL, which looks like the following.https://www.facebook.com/dialog/oauth &client_id=app_id&redirect_uri=https://www.facebook.com/connect/login_success.html &response_type=token&scope=read_stream,email,user_birthday,user_events,user_groups,user_checkins,friends_groups,friends_checkins,friends_events,publish_stream2.While logged in as App_admin, send a friend request to App_user to get access to the data of the friendsof App_user.3.Log in as App_user and accept the friend request.When App_user accepts the friend request, Facebook sends an access token for App_user to App_admin.By accepting the request, App_user makes all data and all visible data of friend's of App_user availableto the app.You can use the access token ID in the token field of the different activities' Input tab.ResultsThe app now has access to all friends of the activity for the amount of time that Facebook uses as the default.When this manual was written, the default was approximately 2 hours.Related TopicsAuthentication and Authorization Example on page 15TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookAuthentication and Authorization Example | 17Generating Extended Authentication TokensBefore you beginBefore you start generating extended authentication tokens, create users and prepare your app. See PreparingYour Example App on page 17.About this taskBy default, a Facebook authentication token expires after two hours. You can extend the token to be valid forsix days.The precise expirations for tokens and extended tokens depend entirely on the settings Facebookassigns to those tokens.Procedure1.Log in as the App_user user and select App Settings > Advanced.2.Enable Deprecate offline access and save your settings.3.In a Web browser, access the Facebook page for App_admin and go to the privacy page settingshttp://www.facebook.com/about/privacy/your_info.4.Log in as App_user, select Apps and Settings, and remove the app.5.Log out, clear your browser's cache, and use the following redirect URL for getting the initial token. TheURL cannot contain spaces, line breaks below are added for legibility.https://www.facebook.com/dialog/oauth &client_id=app_id&redirect_uri=https://www.facebook.com/connect/login_success.html &response_type=token&scope=read_stream,email,user_birthday,user_events,user_groups,user_checkins,friends_groups,friends_checkins,friends_events,publish_stream6.Use the token that is returned for a short time (less than two hours).7.Go to a different machine, start a Web browser, and log in to Facebook as App_user.You will now exchange the short-term token for a long-term token. The extension request requires thatyou have a currently valid token.8.Use that extension URL with the existing token, App ID, App Secret, and so on to extend the token. TheURL cannot contain spaces, line breaks below are added for legibility.https://graph.facebook.com/oauth/access_token ?client_id=app_id&client_secret=app_secret&grant_type=fb_exchange_token&fb_exchange_token=tokenRelated TopicsAuthentication and Authorization Example on page 15TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook18 | Authentication and Authorization ExampleChapter3Facebook PaletteThe Facebook Palette contains the activities you can include in your business process.Topics• Graph Query Activity• Search Activity• FQL Query Activity• Publish Activity• Delete Activity• RealTimeListener ActivityTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookGraph Query ActivityThe Facebook social graph represents the connections between Facebook objects such as users, links, andpages. You can use the Graph Query Activity to query the social graph and then publish the results for furtheruse.Graph Query allows you to search for a specific object and its details. It does not return results across allFacebook objects like Search but focuses on a single object. A Graph Query searches a much smaller spacethan a Search activity, but it requires the Object ID for the object you want information about.Related TopicsFacebook Palette on page 19Graph Query Configuration Tab on page 20Graph Query Input Tab on page 20Graph Query Output Tab on page 21Graph Query Error Output Tab on page 21Graph Query Example Scenario on page 22Graph Query Troubleshooting on page 23Graph Query Configuration TabThe Graph Query Configuration tab lets you specify the name and description of your query, select an objectto query, and specify the connections of the object that you are interested in.DescriptionField or PropertyName of the query.NameQuery description.DescriptionOne of the Facebook objects to query on.ObjectClick this checkbox to query connections between objects. A CollectionNamedrop-down appears.Query ConnectionType of connection you can query. For example, if you select a Post object, thisdrop-down allows you to select Comments, Insights, and Likes.See the Facebook Developer documentation for details.CollectionNameRelated TopicsGraph Query Activity on page 20Graph Query Input TabDescriptionField or PropertyRun the process twice to retrieve information, with different valuesin the Input tab. .graphObjectID1.Use your own user ID or the string "me", including the doublequotes to retrieve the object you want to query. For example,you might want to query a friend's connections, and you needthat friend's user ID to do so.TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook20 | Facebook PaletteDescriptionField or Property2.In a second Graph Query activity, specify the ID of the objectthat you actually want to retrieve information about.Maximum number of fetch operations the process performs.Default is 1.If you specify -1, the plug-in fetches data until the end of the resultset Facebook returns, regardless of the page size limit.maxNumOfPagesNumber of items returned for each fetch operation. Default is 1.If you specify -1 for maxNumOfPages, this value is ignored.page_SizeAdditional parameters, depending on the selection you made inthe Configuration tab.additionalParamsFacebook authentication token (OAuth token) to access the datatokenRelated TopicsGraph Query Activity on page 20Graph Query Output TabXML representation of the returned object. The information available in the object depends on the object thatis selected in the Configuration tab and on the permissions settings for that object. For example, if you selectthe object Link and the CollectionName Comments to get all comments on a link, the following fields areincluded in the output.• id• metadata• type• from• message• createdTime• likesRelated TopicsGraph Query Activity on page 20Graph Query Error Output TabDescriptionErrorIf the plug-in cannot send the request or parse the response, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 21DescriptionErrorIf the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsGraph Query Activity on page 20Graph Query Example ScenarioBefore you begin• You need a Facebook Authentication Token. See Authentication and Authorization Example on page 15.• You need the User ID of a Facebook user. A common approach is to first run a query with the user "me",and to retrieve that user's friends. In a second pass, user IDs of friends can be passed in and the informationcan be retrieved when you set the Graph Query CollectionName to Friends to collect the names of theuser's friends.About this taskThe precise setup of the Configuration tab and the Input tab for an activity depends on the supported objectsin the Facebook API and in the plug-in. The example scenario queries the feed for a user you specify.This example scenario illustrates only one way of using the activity.Procedure1.In TIBCO Designer, create a process select the Facebook palette, and add the Graph Query activity to theprocess.2.Connect the Start activity to Graph Query and Graph Query to the End activity.3.Select the Graph Query activity and make the following choices in the Configuration tab.– Name - Graph Query 42– Object - User– QueryConnection - Checked– CollectionName - FeedYou check the QueryConnection checkbox to select connections associated with the selected object.4.(Optional) Select the Input tab, select $_globalVariables, and enter the following values in the ActivityInput pane.– GraphObjectID - Enter the User token for the user you want to query.– token - Enter the Facebook authentication token this process should use.You can specify the ID and the token in the mapper instead.5.Run the process.6.Select the Output tab and click Source.You can review or process the feed data for the user you specified.TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook22 | Facebook PaletteRelated TopicsGraph Query Activity on page 20Graph Query TroubleshootingAt times, your Graph Query might return different results than you expect. Review this information to helpresolve your problem.• When you use a Graph Query to query a user's connection, you specify the ID in the Input tab. If youspecify the User ID instead of the Connection ID, Facebook queries the User, and the results correspondto the object. Check carefully in the input tab of any activity, that you use the correct ID. The User ID andthe Connection ID are different, though no error results if you use the User ID in place of a ConnectionID.• While working with a Graph Query, some confusion might result with a user's Subscribers and Subscribedtoconnections.– USER_ID/Subscribers - This user connection returns the people who are subscribed to given USER_ID.According to Facebook documentation all friends are users' subscribers, but when you try to accessthis connection it returns only the actual subscribers, not friends.– USER_ID/Subscribedto - This user connection returns the list of users to whom the given USER_IDis subscribed. According to Facebook documentation USER_ID is subscribed to all his friends, butwhen you try to access this connection it returns only the user to whom USER_ID is explicitly subscribedto, not all friends of the user.Facebook documentation does not discuss this behavior, but all Facebook tools and APIs (Graph API,SOAP_UI, etc.) return the same result as the plug-in.• When you access user information with Graph Query, you can only access basic information. You cannotaccess information on the user's interests such as books, movies, and so on. Consider using an FQL Queryinstead.• When you query for the links of a user, the query returns only the links of the user, not links of otherusers.• When you set up a Graph Query activity to retrieve all Likes for a Link on a user's page, no error resultseven if you specify a User ID in the Input tab because Facebook cannot distinguish between User ID andLink ID. When you run the process, it returns the Likes for the User.To resolve the issue, change the graphObjectID on the Input tab to be a Link ID.Related TopicsGraph Query Activity on page 20TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 23Search ActivityThe Search activity allows you to search public objects in the social graph. Searchable objects include publicposts, people, pages, events, groups, places, and checkins. By default, Search returns one result.Add quotes around strings that include special characters.You might also need to add a set of single quotes if the string you want to search for already includes doublequotes, or if text is repeating in the string. For example, to search for "fun fun fun" , enter the text '"fun funfun"'.Related TopicsFacebook Palette on page 19Search Configuration Tab on page 24Search Input Tab on page 24Search Output Tab on page 25Search Error Output Tab on page 25Search Example Scenario on page 25Search Configuration TabDescriptionField or PropertyName of the searchNameQuery searchDescriptionThe Facebook objects to search on.Object TypeRelated TopicsSearch Activity on page 24Search Input TabDescriptionField or PropertyText to search Facebook for.searchTextMaximum number of fetch operations the process performs.Default is 1.If you specify -1, the plug-in fetches data until the end of the resultset Facebook returns, regardless of the page size limit.maxNumOfPagesNumber of items returned for each fetch operation. Default is 1.If you specify -1 for maxNumOfPages, this value is ignored.pageSizeAdditional parameters, depending on the object you select in theConfiguration tab.additionalParamsThe token field only appears if you selected Place or User in theConfiguration tab. For other selections, you are performing a searchover public data and no token is required.tokenTIBCO ActiveMatrix BusinessWorks Plug-in for Facebook24 | Facebook PaletteRelated TopicsSearch Activity on page 24Search Output TabXML representation of the returned object. The information available in the object depends on the object thatis selected in the Configuration tab and on the permissions settings for that object.Related TopicsSearch Activity on page 24Search Error Output TabDescriptionErrorIf the plug-in cannot send the request or parse the response, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.If the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsSearch Activity on page 24Search Example ScenarioBefore you beginYou need a Facebook Authentication Token. See Authentication and Authorization Example on page 15.About this taskThe precise setup of the Configuration tab and the Input tab for an activity depends on the supported objectsin the Facebook API and in the plug-in.For this example, you need an access token for a User object and Placeobject. Other objects do not require additional access tokens.This example scenario illustrates only one way of using the activity.Procedure1.In TIBCO Designer, create a process, select the Facebook palette, and add a Search activity to the process.TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 252.Connect the Start activity to Search and Search to the End activity.3.Select the Search activity and make the following choices in the Configuration tab.– Name: Search 55– Object Type: PostSetting these values allows you to search for posts. that contain the search text you specify in the Inputtab.4.Select the Input tab, and enter the following values in the Activity Input pane.– search_text - Type in the search text, for example, "Two-Second Advantage". Double quotes arerequired.5.Run the process.6.Select the Output tab and click Source.The Source pane displays the posts on Facebook that include the string.Related TopicsSearch Activity on page 24TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook26 | Facebook PaletteFQL Query ActivityFacebook Query Language, or FQL, allows you to query the data available in the Facebook social graph. Incontrast to the Graph Query activity and the Search activity, you can narrow down the search results.What is displayed in the output depends on the permissions associated with the token.FQL queries use the following syntax:SELECT [fields] FROM [table] WHERE[conditions]Unlike SQL, the FQL FROM clause can contain only a single table. You can define subqueries by using INkeyword in the SELECT clause or in the WHERE clauses. However, subqueries cannot reference variablesin the outer query's scope.Your query can include basic boolean operators ( AND or NOT logical operators) and ORDER BY and LIMITclauses. Your query must be indexable, which means that it queries properties that are marked as indexablein the Facebook Graph API documentation.Some of the advanced functionality available in the FQLAPI is not supported by the Facebook FQL Quereyactivity. For example, if you want to perform multiple queries, you have to feed the result of one FQL Queryinto a second FQL Query.For some queries, you need not only the authentication token but also the application token. See theFacebook documentation for details.Related TopicsFacebook Palette on page 19FQL Query Configuration Tab on page 27FQL Query Input Tab on page 28FQL Query Output Tab on page 28FQL Query Error Output Tab on page 28FQL Query Example Scenario on page 29FQL Query Configuration TabThe Configuration tab allows you to define the query by following these steps:1.Define the FROM clause by selecting one of the items in the Tables dropdown.2.Define the SELECT clause by selecting one or more of the columns that become available when you clickPick Columns.3.Define the WHERE clause, using the syntax discussed in the Facebook developer documentation. Youcan define subqueries by using the IN keyword in the WHERE clause. However, subqueries cannotreference variables in the outer query's scope.DescriptionField or PropertyName of the FQL QueryNameFQL Query description.DescriptionList of tables over which you can run the FQL Query. See the Facebook DeveloperDocumentation for details on what each table means.For example, Comment queries this table to obtain comments associated with oneFacebook object, for example, comments associated with a Post, Link, Video, or Photo.TablesTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 27DescriptionField or PropertyClick Pick Columns to display a multi-choice table, click the check boxes next to thefields to select, and click OK.ColumnsWHERE clause for the FQL Query.WhereRelated TopicsFQL Query Activity on page 27FQL Query Input TabDescriptionField or PropertyOptional field to override the WHERE clause of the FQL Query atruntime.Use this field if a BusinessWorks activity feeds data to this activity,and you want to use something in the input data as the querystring.whereClauseSpecify only the WHERE clause. If the syntax of the text inthis field does not match the WHERE clause syntax, anerror results.Facebook OAuth token to access the datatokenRelated TopicsFQL Query Activity on page 27FQL Query Output TabXML representation of the returned object. The information available in the object depends on the object thatis selected in the Configuration tab and on the permissions associated with the token. The token permissionsultimately depend on the permissions the user associated with the token granted to the App.The plug-in supports a subset of the output returned by the Facebook FQL Query API. If the FacebookQuery API changes, even those fields might not all be available.Related TopicsFQL Query Activity on page 27FQL Query Error Output TabDescriptionErrorIf the plug-in cannot send the request or parse the response, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook28 | Facebook PaletteDescriptionErrorIf the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsFQL Query Activity on page 27FQL Query Example ScenarioBefore you begin• You need a Facebook Authentication Token. See Authentication and Authorization Example on page 15.• Decide on an indexable column field with a corresponding value to perform the query over.About this taskThe precise setup of the Configuration tab and the Input tab for an activity depends on the supported objectsin the Facebook API and in the plug-in. This example scenario illustrates only one way of using the activity.This example scenario illustrates only one way of using the activity.Procedure1.In TIBCO Designer, create a process, select the Facebook palette, and add an FQL Query activity to theprocess.2.Connect the Start activity to FQL Query and FQL Query to the End activity.3.Select the FQL Query activity and select or type the following in the Configuration tab.– Name - FQL Query 58– Tables - user– Columns -uid,first_name,middle_name,last_name,pic,religion,movies,about_me,notes_count,email,third_party_id– where - uid=me()4.Select FQL Query in the Process Pane to display the Column Editor and verify the fields you typed in theColumns field are selected.You can change the fields to query from the Columns editor.5.Run the process.6.Select the Output tab and click Source.The <Output> element displays the requested information. What can be displayed depends on the tokenassociated with the App.7.Click Source to display the XML version of the output.Related TopicsFQL Query Activity on page 27TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 29Publish ActivityYour ActiveMatrix BusinessWorks Plug-in for Facebook process can publish to the Facebook social graph byusing HTTP POST requests. You must have an authentication token. You cannot publish to all objects.The Post section in the Graph API Facebook Developer documentation includes details on a post'sfields. The Publish activity includes only a subset of these fields.ExamplesFor example, to publish an event, follow these steps:1.In the Configuration tab, select Events (of a User) and click Apply.2.If you want to invite someone to your event, create another Publish activity and select Invited (of an Event)in the Configuration tab.3.The invited user can then publish Attending (of an Event), Maybe (of an Event) and Declined (of an Event).Another good example is publishing notes.Facebook DocumentationThe Facebook documentation includes information about the post's connection. When this manual waswritten, the most relevant information was at https://developers.facebook.com/docs/reference/api/post/.Consult also the section on publishing at http://developers.facebook.com/docs/reference/api.The Graph API documentation for each Facebook object includes a Connection section that includes a Createsection. This section explains how to publish comments or like that object.Setting the Privacy Field for the Feed of a UserIf you want to set the privacy field for the Feed of a User, you can use a JSON string, for example:"{'value':'CUSTOM', 'friends':'ALL_FRIENDS', 'description':'US,CA'}"Related TopicsFacebook Palette on page 19Publish Configuration Tab on page 30Publish Input Tab on page 31Publish Output Tab on page 31Publish Error Output Tab on page 31Publish Example Scenario on page 32Publish Configuration TabThe Publish configuration tab lets you specify what you want to publish. For example, you might publishesan event to a user's page.DescriptionField or PropertyName of the Publish activity.NamePublish activity description.DescriptionDrop-down list of potential connections you might publish.When you use the Publish activity to publish the Links (of a Page), you must pass ina page token. Passing in a user token results in an error.ConnectionTIBCO ActiveMatrix BusinessWorks Plug-in for Facebook30 | Facebook PaletteRelated TopicsPublish Activity on page 30Publish Input TabDescriptionField or PropertyThe name and contents of the first element of the Input tab dependson the selection you make in the Configuration tab. For example,<first element>if you choose Comments (of a Post), you can specify the ID of thepost you want to publish a comment to, and the parameters youcan specify for the comment.The precise parameters you can specify depend on the selectionyou make in the Configuration tab. For example, if you chooseComments (of a Post), you can specify the message of the comment.parametersFacebook OAuth token to access the datatokenRelated TopicsPublish Activity on page 30Publish Output TabDescriptionField or PropertyTypically the ID of the published object.For Attending, Maybe, Declined, Invited and Likes connections,the Publish activity returns true or false instead of an ID.publishResultRelated TopicsPublish Activity on page 30Publish Error Output TabDescriptionErrorIf the plug-in cannot send the request or parse the response, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.If the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 31DescriptionErrorIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsPublish Activity on page 30Publish Example ScenarioBefore you beginYou need a Facebook Authentication Token. See Authentication and Authorization Example on page 15.About this taskThe precise setup of the Configuration tab and the Input tab for an activity depends on the supported objectsin the Facebook API and in the plug-in. This example scenario illustrates only one way of using the activity.The example scenario publishes an event to a user's page. After the process has run, you can see in the Outputtab that an event was published, but you cannot see any information about the event. You could insert aSleep activity, and follow that with an FQL Query or a Graph Query to check that the event is visible on thepages to which it was published.This example scenario illustrates only one way of using the activity.Procedure1.In TIBCO Designer, create a process, select the Facebook palette, and add a Publish activity to the process.2.Connect the Start activity to Publish and Publish to the End activity.3.Select the Publish activity and make the following choices in the Configuration tab.– Name - Publish 42– Connection - Events (of a User)4.Select the Input tab specify activity input for which you have predefined global variables.– Profile ID - In the ProcessData pane, open $_globalVariables, open GlobalVariables, and connect fromthe User ID you set up earlier to the profileID in the Activity Input pane.You can get that ID by performing a Graph Query for a User Object's Friends.– Token - Connect from the user's Authentication token in the Process Data pane to the token field inthe Activity Input pane.5.Open parameters and specify event parameters as shown in the following example screen.TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook32 | Facebook Palette6.Run the process.7.Select the Output tab and verify that the Output tab indicates that the event was published.8.To independently verify that the event was published, navigate to the Facebook home page and log in asthe user that was used in this Publish activity. Look at the user's events to verify the event is visible.Related TopicsPublish Activity on page 30TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 33Delete ActivityThe delete activity allows you to delete objects in the social graph. For example, you might be able to deletea comment or delete a like for a post.The plug-in can only delete items that the plug-in added, and can only perform the deletion if theuser's permissions allow it.Related TopicsFacebook Palette on page 19Delete Configuration Tab on page 34Delete Input Tab on page 35Delete Output Tab on page 35Delete Error Output Tab on page 35Delete Activity Troubleshooting on page 36Delete Configuration TabThe Delete activity Configuration tab includes the following objects:• Link• Post• Page• Event• Other• CommentIf you select Other, you can specify other objects by specifying the Object ID in the Input tab. Those objectsinclude groups, notes, photos, or other objects that the plug-in App published earlier. The Connectiondrop-down menu of the Publish tab shows all objects the plug-in App can publish. You can only specifyobjects that are not included in the Delete Configuration tab when you choose Other.DescriptionField or PropertyName of the Delete activity.NameDelete activity description.DescriptionSelect the type of object you want to delete from the drop-down menu. When thismanual was written, information about permissions you might need to delete an objectwas available at http://developers.facebook.com/docs/authentication/permissions.The Delete activity can only delete objects that have an ID. Objects that do not havean ID, such as Attending, Invited, and Maybe, cannot be deleted separately from theObjectobject. For those cases, the whole object, for example the event, is deleted if thepermissions are set to allow this.If you selected Post as the object, you can delete the like of the post.Unlike this objectRelated TopicsDelete Activity on page 34TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook34 | Facebook PaletteDelete Input TabDescriptionField or PropertyID of the object to be deleted, for example, a post ID.graphObjectIDIf you accidentally specify the User ID, the user with thatID is deleted.Facebook OAuth token to access the datatokenRelated TopicsDelete Activity on page 34Delete Output TabDescriptionField or PropertyTrue if successful.If the Delete operation is not successful, an error results.deleteResultRelated TopicsDelete Activity on page 34Delete Error Output TabDescriptionErrorIf the plug-in cannot send the request or parse the response, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.If the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsDelete Activity on page 34TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 35Delete Activity TroubleshootingAt times, your Delete activity might behave differently than you expect. Review this information to helpresolve your problem.• When you attempt to use the Delete activity to delete posts from a user's profile, an Invalid ParameterError results. The behavior is based on a difference between a user's links and a user's feeds and thecorresponding access tokens.– USER_ID/links - Returns the links created by the mentioned USER_ID. The link is same as post withadditional attribute link. To access all the links (public, private) of the user we need his access tokenwith "read_stream" permission, otherwise only the links that are public will be displayed.– USER_ID/feed - Return anything that was posted on given USER_IDs wall. This includes updatesfrom given USER_ID and his friends. The updates include status, posts, and links from given USER_IDand his friends. To access all the feeds we need "read_stream" permission on the user or else we'll onlyget public feeds.• When you use the Publish activity to publish the Links or Checkins of a User, Facebook returns a 1-partID for that user. When the Delete activity attempts to delete that Link or Checkin, the Delete operationfails because Facebook expects a 2-part ID.This issue has been reported as http://bugs.developers.facebook.net/show_bug.cgi?id=10413.• Even though the Delete activity includes a Page option, you cannot delete a page. The Publish activitydoes not support publishing a page, and your App cannot delete items it did not publish.Related TopicsDelete Activity on page 34TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook36 | Facebook PaletteRealTimeListener ActivityThe RealTimeListener activity is a TIBCO ActiveMatrix BusinessWorks starter activity. It enables ActiveMatrixBusinessWorks customers to subscribe to changes in data in Facebook. By listening to changes, rather thanpolling the Facebook servers, an ActiveMatrix BusinessWorks application can improve reliability and decreaseload times.Internally, the listener starter activity follows these steps to set up a subscription:1.An internal Tomcat server is set up with an endpoint URL. The server receives both HTTP GET requests(for subscription verification) and HTTP POST requests (for actual changed data) from Facebook.2.The Tomcat server makes a POST to the Facebook graph API URL to subscribe to changes on certainFacebook objects, and is ready to handle the verification request.3.Facebook servers will make an HTTP GET request to the callback URL.4.The Tomcat server verifies the verify_token value that ActiveMatrix BusinessWorks passes to Facebookand returns the hub.challenge value. This verification technique prevents malicious apps from using thereal-time feature as tool for distributed denial-of-service (DDoS) attacks.5.If there is a valid subscription, and if data changes, Facebook servers make an HTTP POST request to thecallback URLActiveMatrix BusinessWorks specified. The request has a content type of application/json.The body is a JSON-encoded string that contains one or more changes. By default, ActiveMatrixBusinessWorks outputs the content in XML. You can instead output the content in JSON.Related TopicsFacebook Palette on page 19RealTimeListener Configuration Tab on page 37RealTimeListener Output Tab on page 38RealTimeListener Error Output Tab on page 38RealTimeListener Example Scenario on page 39RealTimeListener Configuration TabDescriptionField or PropertyName of the RealTimeListener activity.NameRealTimeListener activity description.DescriptionThe IP address (or machine name) that you run this listener on.Endpoint AddressPort of the listener endpointPortID of your app.App IDThe access token associated with the app. This is not the user access token.Access TokenObject you want to subscribe to. Facebook currently allows you to subscribe to user,permission, and page objects.Object typeThe list of fields and a list of connections in the selected object that you want tosubscribe to.FieldsClick this check box to receive the output in JSON format. The default is text.JSONClick this checkbox to set up the connection as an SSL connection.SSLKeystore file location. Visible only if you turned on SSL.Keystore FilePassword of the keystore file. Visible only if you turned on SSL.Keystore PasswordTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 37Related TopicsRealTimeListener Activity on page 37RealTimeListener Output TabThe change notification sent from Facebook does not include the actual data values; to obtain those, you canrequest them as normal, subject to the usual privacy restrictions.If you select the JSON Object field in the Configuration tab, the output is a JSON object. If you do not selectthe JSAN Object field in the Configuration tab, the output is XML.DescriptionField or PropertyObject this notification is for.objectList of changed object entries.entryObject ID of the change object entry.uidFields that are changed for the changed object entry.changed_fieldsTime at which the change happened.timeRelated TopicsRealTimeListener Activity on page 37RealTimeListener Error Output TabDescriptionErrorIf the plug-in cannot send the request or parse the response, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.If the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsRealTimeListener Activity on page 37TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook38 | Facebook PaletteRealTimeListener Example ScenarioBefore you begin• You need a Facebook Authentication Token. See Authentication and Authorization Example on page 15.• You need the User ID of a Facebook user. A common approach is to first run a query with the user "me",and to retrieve that user's friends. In a second pass, user IDs of friends can be passed in and the informationcan be retrieved.About this taskThe precise setup of the Configuration tab and the Input tab for an activity depends on the supported objectsin the Facebook API and in the plug-in. This example scenario illustrates only one way of using the activity.The example scenario implements a real-time listener that checks for changes to the feed and the friends ofa user you specify.This example scenario illustrates only one way of using the activity.Procedure1.In TIBCO Designer, create a process and drag the RealTimeListener activity on top of the Design pane.RealTimeListener replaces the Start activity.2.Select the RealTimeListener activity and make the following choices in the Configuration tab.– Name - RealTimeListener 37– Endpoint Address - Specify an address such as bwsm-test.company37.com– App ID - Paste in the ID for the App that is making the connection to Facebook.– Access Token - Paste in the Access Token associated with the App that is making the connection toFacebook.– Object Type - User– Fields - Click Pick Fields and specify the connections for the specified user, for example, feed andfriends.You check the QueryConnection checkbox to select connections associated with the selected object.3.Run the process and select the Output tab of the RealTimeListener.4.Change a field in any user who granted permission to the App. The feed gets updates from every userwho granted permission.If you are not logged in as a user who can make a change, you might have to log in and log out again.5.Return to TIBCO Designer and select the RealTimeListener Output tab.The changed field shows feed, and the time field shows the time at which the feed was last changed.Related TopicsRealTimeListener Activity on page 37TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookFacebook Palette | 39Chapter4Troubleshooting and ErrorsIf you encounter problems when you run a process, you can often resolve the problem by looking at the console,the error output, and the error code documentation.Topics• Troubleshooting Overview• Troubleshooting Activity Errors• Facebook Plug-in ExceptionsTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookTroubleshooting OverviewWhen your TIBCO ActiveMatrix BusinessWorks process encounters an error, it highlights the activity wherethe error occurred in red and displays an error in a dialog. Several causes for the error are possible.BusinessWorks process errorIf there is a problems with your BusinessWorks process setup, the error displays in a dialog. ChooseWindow > Show Console to display detailed error information.Select the Output tab in the activity to see the error output. If the message code starts with BW, you canlook up the code in the TIBCO ActiveMatrix BusinessWorks Error Code documentation.Facebook Plug-in Error OutputIf there is a problem with the plug-in configuration, the error displays in the dialog. Choose Window> Show Console to display detailed error information.To resolve the error, try the suggestions in Facebook Plug-in Exceptions on page 44. Contact TIBCOSupport after you have verified that the error is not the result of a change on the Facebook side.Related TopicsTroubleshooting and Errors on page 41TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook42 | Troubleshooting and ErrorsTroubleshooting Activity ErrorsWhen your run a process and an error results, or when you run a process and the result is not what youexpected, several reasons are possible.• Facebook behavior has changed since the plug-in was released. Read the Facebook API documentationcarefully.• The behavior you expect does not completely map to the behavior of the Facebook API. For example,certain terms such as "link" might mean something very specific.• In some situations, you can give an input in the Input tab that does not match the item selected in theConfiguration tab.See the Troubleshooting sections of individual activities and the Release Notes, as well as Facebook developerdocumentation for additional troubleshooting pointers.Related TopicsTroubleshooting and Errors on page 41TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookTroubleshooting and Errors | 43Facebook Plug-in ExceptionsIf running a process results in an error, the activity where the error occurred is highlighted in red. When youselect the activity's Error Output tab, the Error displays, along with any error that Facebook sent to the plug-in.DescriptionErrorIf the plug-in cannot send the r equest or parse the r esponse, anFBPluginException results. A summary of the error returned from Facebookdisplays in a dialog.Select Window > Show Console to see the complete error message.FBPluginExceptionIf you get this error with a process that previously worked properly, Facebookmight have added fields to the object the activity is using. Check the inputfield of the activity for missing input and see the Facebook documentationfor details.If the HTTP connection to Facebook is not available, or if another connectionproblem that is unrelated to authorization exists, an FBConnectionExceptionresults.FBConnectionExceptionIf your token is invalid, your token expired, or you do not have permissionsto retrieve or publish the information you want to retrieve or publish, anFBOauthException results.The error message from Facebook is not specific and you might have toexplore whether the problem is related to the token or related to permissions.FBOauthExceptionRelated TopicsTroubleshooting and Errors on page 41TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook44 | Troubleshooting and ErrorsChapter5Process ExampleA simple example can help you get started setting up your own processes with the TIBCO ActiveMatrixBusinessWorks Plug-in for Facebook. The example assumes you understand how to set up and run TIBCOBusinessWorks processes from TIBCO Designer.Topics• Example Overview• Creating the Parsing Page Feeds Process• Creating the Product Direction ProcessTIBCO ActiveMatrix BusinessWorks Plug-in for FacebookExample OverviewThe example assumes that a small family-owned purveyor of hand-crafted garden ornaments has a selectnumber of customers. Each customer is a fan of the store's Facebook page, which helps customers keep abreastof new products and other exciting developments. The tutorial uses the term fan for any user who added acomment to a page post, liked a post, or added a post to the company page.To help determine product direction, the webmaster can use the TIBCO ActiveMatrix BusinessWorks Plug-Infor Facebook to determine the interests of the customers. For example, the plug-in is set up to collect the userIDs of the company's fans. If more than 50% of the company's fans are also fans of the National WeatherService, the company crafts a small number of weather stations tastefully framed in Brazilian ironwood, andposts a brief introduction to the product to the company Facebook page, with a link to the company Web sitefor more details and photos.The example consists of two processes.ParsingPageFeeds ProcessThe ParsingPageFeeds process collects the user ID of the fans of the company's facebook page. The processincludes the following activities.1.A Graph Query extracts the company's page feed and passes it to three Mapper activities.2.Three Mapper activities take extract three types of users who are interested in the company from the pagefeed. For example, the Get Users who Posted activity extracts all users who posted to the company page.3.A Java Code MergeUIDs activity combines the output of the three Mapper activities, with a list of allcompany fans passed on to the next process. The code eliminates duplicates.ProductDirection ProcessThe ProductDirection process is the top-level process. It determines which of the company fans are also fansof the National Weather Service, and compares the two numbers. If more than 50% of the company fans arealso passionate about weather, the process gives a green light for production of the new product. The processincludes the following activities.1.The ParsingPageFeeds process extracts the User IDs of all fans of the company from the company feed.2.The Check Fans of Other Page activity iterates over the company fans and checks for each fan whetherthe user is also interested in the National Weather Service.3.The CompareFanCounts activity compares counts the company fans and the users who are both fans ofthe company and fans of the National Weather Service. The activity true if more than half of the company'sfans are interested in weather.Facebook authentication tokens are required for each process.Related TopicsProcess Example on page 45TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook46 | Process ExampleCreating the Parsing Page Feeds ProcessBefore you begin• This description assumes that you know how to configure TIBCO BusinessWorks processes. See the TIBCOBusinessWorks documentation for details.• To configure this example for your own application, you need the Page ID for the company page and aFacebook Authentication Token.About this taskThe Parsing Page Feeds Process extracts User IDs of the company's fans from the company feed. This exampleassumes a user is a fan if that user posted to the company page, liked a post on the company page, orcommented on a company page post. You can review the example included in the product, or create theprocess as follows.Procedure1.Open TIBCO Designer and select New Empty Project when prompted.2.In the panel on the left, click the Palettes tab and click Process.3.Drag a process into the Design panel on the right and define the process.– Name - ParsingPageFeeds– targetNamespace - Filled in by Designer4.Double-Click the process.A Start and End activity appear in the Design panel.5.Click the Facebook palette, drag a GraphQuery activity to the right of the Start activity in the Design panel,and set up the GraphQuery.a) Select the Connector icon in the menu bar and drag a line from the Start activity to the GraphQueryactivity.b) Click the GraphQuery activity. In the Configuration tab, name the activity Our Page and make thefollowing selections.• Object - Page• QueryConnection - Checked• CollectionName - Feedc) In the Input tab, open the ProcessData on the left and the ActivityInput on the right and direct the dataflow.• Copy the company's Page ID into the graphObjectID field.• Copy your authentication token into the token field.6.Select the General Activity palette, drag three Mapper activities into the Process, and connect and configurethose activities.a) Drag a line from the GraphQuery activity to the first Mapper activity.b) Repeat for the other two Mapper activities.c) Configure each activity to extract one type of user from the company feed.See the TIBCO BusinessWorks documentation for information about Mapper activities, or look at theexample.7.Select the Java pallet, drag a Java Code activity into the Design panel, and make connections from theMapper activities to the Java Code activity, as shown in the screen shot below.TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookProcess Example | 478.In the Java Code, loop through the user IDs the Mapper activities have as their output and make sure noduplicates are included. The list of User IDs of company fans becomes the input to the Product Directionprocess.9.Modify the Input tab of the End activity so the output of the MergeUIDs activity is passed on to the nextactivity.See the TIBCO BusinessWorks documentation for details.Figure 1: ParsingPageFeeds ProcessRelated TopicsProcess Example on page 45TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook48 | Process ExampleCreating the Product Direction ProcessAbout this taskThe Product Direction process first runs the ParsePageFeeds process, which returns all fans of the company.The process looks at each user and checks whether that user is also a fan of the National Weather Servicepage. Finally, ProductDirection determines the percentage of weather aficionado among the company fansand gives the green light for the new product if more than 50% are interested in the weather.Procedure1.Open TIBCO Designer and select New Empty Project.2.In the panel on the left, click the Palettes tab and click Process.3.Drag a process into the Design panel on the right and define the process.– Name - ProductDirection– targetNamespace - Filled in by Designer4.Double-Click the process.A Start and End activity appear in the Design panel.5.From the Project tab, drag the ParsingPageFeeds process into the Design panel and connect it with theStart activity.6.Click the Facebook palette, and drag an FQL Query activity to the right of the process and make thefollowing selections.a) Configuration tab:• Name - Check Fans of other Page• Tables - remove check_in, add page_fan• Colums - uid, page_idb) Input tab:• Create three global variables, access_token, Page_ID and otherPage_ID and spacify the value foreach. If you are using the sample project, replace the values of the existing global variables.• Spedify a Where clause that checks for a user whether that user is a fan of the National WeatherService, identified by otherPage_ID.concat(concat(concat("uid =", $uids/uids)," and page_id="),$_globalVariables/ns:GlobalVariables/otherPage_ID)See the TIBCO ActiveMatrix BusinessWorks documentation for more information.7.Make a group, as follows:a) Select the arrow icon in the toolbar and drag a square around the FQl Query (Check Fans of OtherPage).b) Click the Group icon in the tool bar to create a group and allow for processing of each result.c) Connect the process with the FQL Query groupSee the TIBCO BusinessWorks documentation for information about Group activities, or look at theexample.8.Select the Java pallet and drag a Java Code activity into the Design panel. This activity collects the outputof Check Fans of other Page and compares is with the total number of company fanse. The activity returnstrue if at least 50% of the company page fans are also fans of the National Weather Service.TIBCO ActiveMatrix BusinessWorks Plug-in for FacebookProcess Example | 49Figure 2: ProductDirection ProcessRelated TopicsProcess Example on page 45TIBCO ActiveMatrix BusinessWorks Plug-in for Facebook50 | Process Example