- Issue #1664: IgMedia missing fields added
- Issue #1662: Facebook permissions updated
- Issue #1659: Project Lombok lib version bump
- Issue #1661: mockito junit lib version bump
- Issue #1657: generic_template attachment in message
- Issue #1645: Support for new business scoped user ids in whatsapp
Thanks to @bert-walschap-hs for the hint - Issue #1655: support groups api payloads
- some build dependency updates
- Issue #1526: Java baseline switched to Java 11
- Issue #1631: Default web request handling migrated from
HttpURLConnectionto JavaHttpClient(including improved HTTP/2 handling) - Stream-based
BinaryAttachmentfactory methods now useSupplier<InputStream>for safer retries and uploads - Response metadata handling improved with
ApiResult<T>and direct connection metadata access - New
FacebookClient#createConnection(...)hook added to customize connection instantiation - Error handling improved for API error payloads (including HTTP 200 error bodies), URL readability, and duplicate URL parameters in exceptions
- Deprecated Graph API versions removed from the
Versionenum - Issue #1643: Graph API
v25.0added toVersionandLATESTupdated accordingly - Issue #1608:
AGENTS.mdrepository guidance added for AI coding assistants
- Issue #1612: Missing
Connectionsadded toAdobject - Issue #1613: Missing
Connectionsadded toAds Businessobject - Issue #1621: Graph API 24.0 - enum value added
- Issue #1622: Graph API 24.0 -
is_owneradded toConversation - Issue #1620: Make JSON in
Connectionaccessible - Issue #1611: lombok lib updated
- Issue #1521: WhatsApp Block users support
- Issue #1601: Threads public profile added
- Issue #1535 and #1609: AdCreative missing fields added
- Issue #1607: IgUser missing fields added
- dependencies updated
- Issue #1598:
threads_profile_discoverypermission added - Issue #1590:
threads_business_basicpermission added - Issue #1596:
is_verifiedadded toTdProfile - Issue #1597: TdReplyAudience values added
- dependencies updated
- Issue #1584: Graph API v23.0 added
- Issue #1585: threads_location_tagging permission added
- Issue #1586: Location type and fields added to TdMedia
- Issue #1577: AdCreativeObjectStorySpec fields fixed
Thanks to @harry-cong-wadiz for the hint - Issue #1579:
threads_deletepermission added - Issue #1580: missing fields added to
Videotype
- Issue #1574: Maven deployment migration
Thanks @revetkn
- Issue #1569: add poll attachment to TdMedia object
- Issue #1571: app usage header for Instagram Login Api addedg
- Issue #1558: Instagram Login API Exception added
- build library updates
- Issue #1557: alt_text added to IgMedia
- Issue #1561: removed old Facebook page links from Readme
- library updates
- Issue #1548: Add missing fields to WhatsAppMessageTemplate and WhatsAppMessageTemplateComponent
Many thanks @bxacosta for the PR - Issue #1551: Fix for DefaultInstagramLoginClient and obtaining the extended access token
- Issue #1552: IgUser fields added to support Instagram API with Instagram Login
- Fix for #1538
- Issue #1545: update junit lib
- Issue #1546: update mvn-compiler-plugin
- Issue #1544: support for deserialize nested lists
Many thanks @bxacosta for the PR - Issue #1155 and #1540: problem deserialize nested lists
solved with PR #1544 - Issue #1541: appsecret_proof with additional time factor
- Issue #1538: RtbDynamicPost type added
- Bugfix for #1542
- Issue #1531: add
promotable_idto Post - Issue #1532: add
global_brand_childrento Page - Issue #1533: add
owned_pagesto ads Business - Issue #1534: add type for mapping WhatsApp Business Phone Number
Thanks @bxacosta for the PR - Issue #1536: add
member_countto Group - Issue #1537: add
post_idto Photo - Issue #1539: add missing fields for WhatsAppMessageTemplateComponent Type
Thanks @bxacosta for the PR - Issue #1542: add
permissionsto AccessToken
- Issue #1529: Add method to generate Facebook Business Login URL
Thanks to @bxacosta for the PR
- Issue #1525: Instagram Business API Insights permission added
- Issue #1527: Fix for wrong Instagram Business content publish permission
Thanks to @saunders-d for the bug report
- Cleanup
- Issue #1516: Instagram Basic Display API Client removed (Breaking change)
- Issue #1517: old versions from Version enum removed (Breaking change)
- Issue #1512: license info changed to 2025
- minor refactorings
- Threads
- Issue #1523: quote and repost id added to TdMedia
- Graph API 22:
- Issue #1519: version added to enum
- Issue #1520: legacy_instagram_media_id added to IgMedia
- Issue #1522: legacy_instagram_comment_id added to IgComment
- Libraries:
- Issue #1518: assertj-core updated
- Issue #1514: mockito-junit updated
- Issue #1508: Threads manage mentions permission added
- Issue #1509: Threads keyword search permission added
- Build dependencies updated and dependabot.yml changed
- Issue #1502: ThreadsApiException added
- Many Build dependencies added
- Issue #1485: duplicate key converting type to json fixed
Thanks to @parth0201-in for the bug report - Issue #1491: Version 21.0 added to version enum
- libraries updated
- Issue #1484:
link_attachment_urladded to TdMedia - Issue #1481: Instagram Basic Display API client marked as deprecated
- Issue #1483: Instagram API with Instagram Login scopes renamed
- Some build libraries updated
- Issue #1473: name field added to TdProfile
- Issue #1475: alt_text field added to TdMedia
- Some build libraries updates
- Issue #1449: Add Threads Media Container
- Issue #1467: maven-gpg-plugin version upgrade
- Issue #1465: Instagram API with Instagram Login Client
- Issue #1464: IG API with IG Login: new permissions added
- Issue #1463: Instagram missing
boost_ads_listfield added - Issue #1461: Threads support for geo-gated posts
- Issue #1453: ScopeBuilder add multiple scopes at once
- lot of build library updates
- Issue #1443:
AUDIOadded toTdMediaTye - Issue #1444:
reply_audienceadded toTdReply - Issue #1445:
is_reply_owned_by_meadded toTdReply - Issue #1446:
COVERED,BLOCKEDandRESTRICTEDadded toTdHideStatus - Issue #1447:
is_quote_postadded toTdReply
- Issue #1436: bump maven-surefire-plugin to 3.3.0
- Issue #1437: bump maven-failsafe-plugin to 3.3.0
- Issue #1438:
original_media_idadded to Instagram comment webhook - Issue #1440: Threads client added (OAuth and API requests)
- Issue #1431: Instagram basic display api scopes added
- Issue #1432: missing scopes added
- Issue #1429: fix CI link
- Issue #1434: add DefaultInstagramClient for the basic Display API
- Issue #1433: state param added to login window url
- Issue #1426: IG Basic Display API: create auth window URL
- Issue #1427: IG Basic Display API: obtain access token
- Issue #1421: update maven-javadoc Plugin
- Issue #1422: Improve
obtainExtendedAccessToken - Issue #1423: add IgContainer
- Issue #1424: Add Instagram Endpoint for Instagram basic display API and Threads
- Issue #1410: message_edits Webhook added
- Issue #1419: Graph API 20 added to version enum
- dependency updates
- Add missing MessageContact fields
Thanks to @BernardoGiordano for the PR - Threads API added:
- Issue #1398: new Threads permissions added
- Issue #1399: profile type added
- Issue #1400: media type added
- Issue #1401: rate limit type added
- Issue #1402: reply type added
- Issue #1403: insights checked
- build deps updated:
- Issue #1385: bump version.junit from 5.10.1 to 5.10.2
- Issue #1386: bump org.assertj:assertj-core from 3.25.2 to 3.25.3
- Issue #1387: bump org.mockito:mockito-junit-jupiter from 5.10.0 to 5.11.0
- Issue #1391: bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0
- Issue #1392: bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.2
- Issue #1394: bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
- Issue #1395: bump org.projectlombok:lombok from 1.18.30 to 1.18.32
- Issue #1396: bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12
- Issue #1382: Graph API 19.0 added
- Issue #1383: mark publish_to_groups and groups_access_member_info as deprecated
- Issue #1378: update mockito-junit-jupiter
- Issue #1377: update maven-surefire-plugin
- Issue #1376: update maven-failsafe-plugin
- Issue #1375: update assertj-core
- Issue #1372: update maven-compiler-plugin
- Issue #1349: Move inner types to own classes
- Issue #1342:
sender_idandsender_nameremoved because it is deprecated since api 2.11
- Issue #1365: added contacts and unsupported to MessageType
Thanks to @mikedeswert for the hint and the JSON - Issue #1367: Add biz_opaque_callback_data to whatsapp messages
- Issue #1366: Add copyright_check_information to IgMedia
- Issue #1363: update mockito-junit lib
- Issue #1364: update maven-javadoc-plugin
- Issue #1369: update maven-surefire-plugin
- Issue #1370: update maven-failsafe-plugin
- Issue #1359: Remove duplicate getter from
Story - Issue #1360: fix javadoc generation
- Issue #1361: WhatsApp Message Template contains one language instead of an array
- Issue #1350: bump version.junit from 5.10.0 to 5.10.1
- Issue #1351: bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.0 to 3.6.2
- Issue #1352: bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.1 to 3.2.2
- Issue #1353: bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.1 to 3.2.2
- Issue #1354: bump org.mockito:mockito-junit-jupiter from 5.6.0 to 5.7.0
- Issue #1357: Add Facebook Story type
- Issue #1347: add flexible summary field to connection class
- Issue #1348: profileId getter and possible FB bug in DebugTokenInfo fixed
- Issue #1344: Add errors field to WABP webhook status update
Thanks to @lennehendrickx for the link - Issue #1332: Facebook reel support (check our docs)
Thanks to @saunders-d for the hint - Issue #1341: make error_data accessible in FacebookException
Thanks to @walschap and @lennehendrickx for the hint - Issue #1338: support WABP reaction mapping in webhook
Thanks to @walschap for the hint - Several build lib updates
- Issue #1330: Instagram: Support for mentioned media
- Issue #1328: InstagramCommentsValue.IgCommentMedia should have ad related field
Thanks to @gurkein for the hint - Issue #1327: Add Version 18.0 to version enum
- Issue #1321: add missing fields to
Grouptype - Issue #1322: enhance
MessagingAttachment
Thanks to @An1s9n for the PR - Issue #1324: User object needs is_work_account field
- Issue #1325:
user_access_expire_timefield missing in some objects - Issue #1311: Missing
app_secretproof.
Thanks to @walschap for the hint and the information
- Issue #1319: getBreakdowns throws NPE on null breakdowns
Thanks to @MartinKosturkov for the hint - Issue #1306: bump maven-failsafe-plugin from 3.1.0 to 3.1.2
- Issue #1307: bump maven-surefire-plugin from 3.1.0 to 3.1.2
- Issue #1310: bump mockito-junit to 5.4.0
- Issue #1318: bump junit to 5.10.0
- Issue #1314: Instagram messaging read event webhook handling
Thanks to @An1s9n for the hint
- Issue #1312: fix NPEs in InsightBreakdown classes
- Issue #1308: Correct OSGI version range for SLF4J
Thanks to @vladimirfx for the PR
- Issue #1304: WABP: Webhooks - CategoryType missing enum constants
Thanks to @ztomic for the hint - Issue #1301: Bump maven-javadoc-plugin from 3.2.0 to 3.5.0
- Issue #1295: Bump maven-bundle-plugin from 5.1.1 to 5.1.9
- Issue #1294: Bump version.junit from 5.9.2 to 5.9.3
- Issue #1293: Bump maven-jar-plugin from 3.2.0 to 3.3.0
- Issue #1297: Bump license-maven-plugin from 4.0.rc1 to 4.2
- Issue #1291: Graph API 17.0 support
- Issue #1289: fetchConnection improvement
Thanks to @vicdaran for the report
- Issue #1284: breakdown feature of the new IG insights added to our Insight type
- Issue #1285: groups field added to Page
- Issue #1286: Add VideoPhaseError, VideoPhase to Video type
- Issue #1278: parsing error in debugtoken
Thanks to @abdelrahmanmohamed1990 for the hint - Issue #1278: Add
insightsto Page object - Issue #1279: Add
insightsto Photo object - Issue #1280: Add
video_insightsto Video object - Issue #1281: Add
insightsto Post object - Issue #1282: Add
thumbnailsfield to Video object
- Issue #1273:
Parameter.withQueryadded - Issue #1272:
Parameter.withMessageadded - Issue #1268: WABP interactive messages fixed
Thanks to @ztomic for the hint and the JSONs - Issue #1274: auto deploy to maven central
- Issue #1267: Add convenience method for adding limit Parameter
- Issue #1269: Version 16.0 added
- Issue #1266: Check Page type for missing fields
- Issue #1270: WABP Webhook Version 16: new fields in Error object
- Issue #1263: removed unsupported graph api versions (breaking change)
- License headers changed and some junit cleanup
- Issue #1259: better enum handling
- Issue #1260: unsupported_type added to messaging attachment
- Issue #1257: Graph API 15 added to version enum
- Issue #1256: content_publishing_limit for instagram API
Thanks to @Mexicath for the input - Issue #1253: WhatsApp Business Platform (Send Messages) - contact message
- Issue #1246: Story in Webhook event
Thanks to @Nick97-git for the hint - Issue #1243: Add check for Page New Experience
Thanks to @pranjalmittal for the PR - WhatsApp Business Platform (Send Messages)
- Issue #1244: Send Message object added
- Issue #1247: Text message added
- Issue #1249: Message reaction added
- Issue #1251: Result object for sending message added
- Issue #1248: Media message added
- Issue #1254: Location message added
- Issue #1250: Interactive message added
- WhatsApp Business Platform (Webhook)
- Issue #1240: incoming webhook status
- Issue #1232: incoming identity message
- Issue #1239: incoming webhook message with type unknown incl. some errors
- Issue #1234: incoming interactive message
- Issue #1238: incoming document message
- Issue #1237: incoming system message
- Issue #1236: incoming ads message
- Issue #1235: incoming audio message
- Issue #1230: incoming sticker message
- Issue #1231: incoming location message
- Issue #1233: incoming button message
- Issue #1216: incoming image message
- Issue #1215: incoming text message
- Issue #1229: Reels API feature
Thanks to @gurkein for the hint - Issue #1227: add
whatsapp_business_messagingpermission - Issue #1241: Fix IgMedia, the mdia_product_type is defined here and in the parent class
- Issue #1223: Pull Request to add
usernametoIgUserProfiletype
Thanks to @pranjalmittal for the PR - Issue #1224:
namefield added toInstagramUser
Thanks to @Nick97-git for the hint - Issue #1225: Send JsonObject as request body
Thanks to @astrit-hakobyan for the input
- Issue #1213:
rtbdynamicposttype is missing - Issue #1218: Make it easier to use parameters in the API calls
- Issue #1220: Add Basic Graph API 14 support
- Issue #1205:
PostbackItemobject is missingmidfield
Thanks to @Nick97-git for the input - Issue #1206:
MessagingPayloadis missingtitlefield
Thanks to @Nick97-git for the input
- Issue #1202: New IG comments webhook fields
Thanks to @gurkein for the hint - Issue #1203: New IG live_comments webhook
Thanks to @gurkein for the hint - Issue #1198: IgMedia -
media_product_typefield added - Issue #1200: IgComment -
parent_idfield added - Issue #1199: IgComment -
fromfield added
- NoIssue: fix for 1195
- Issue #1195: Support for
onBehalfOfBusinessInfofield inWhatsAppBusinessAccount
thanks to @maganth-seetharaman for the hint and the information - Issue #1196: Basic support for Graph API 13.0
- Issue #1194: Whatsapp Conversation Analytics Objects
thanks to @akashtyagi08 for the hint
- Issue #1191:
granular_scopesadded toDebugTokenInfo
thanks to @maxrasche for the PR
- Issue #1187: Change License year to 2022
- Issue #1185: Add missing permissions type
- Issue #1135: Remove "perms" field from Account-object - is no longer supported type
- Issue #1143: Remove
CategorizedFacebookTypetype - Issue #1133: Remove deprecated
is_verifiedfield fromPageobject type - Issue #1132: Remove the deprecated
manage_pagesandpublish_pagespermissions type - Issue #1131: Remove
addCommentand removeComment from Video type - Issue #1130: Remove
with_tagsfromPostbecause it is deprecated with Graph API 3.2 type - Issue #1128: Remove
coverIdfromCoverPhototype - Issue #1117: Cleanup the Messenger API objects
- Issue #1116: Remove deprecated fields from
Eventtype - Issue #1115: Remove the deprecated
Locationquick reply type - Issue #1114: Remove deprecated permissions type
- Issue #1113: Remove deprecated 'Ad' types
- Issue #1112: Remove deprecated fields from
Usertype - Issue #1111:
WebhookMessagingListenerremove deprecated methods type - Issue #1110: Assertj classes - change deprecated
Objects.areEqualtype - Issue #1109:
WebRequestormethods refactoring
- Issue #1181: The permission
user_messenger_contactis missing - Issue #1183: Missing
is_deletedfield in MessageItem
Thanks to @BernardoGiordano for the hint - Issue #1182: Missing shop product type
Thanks to @TheFuseGamer for the hint
- Issue #1171: missing fields added to IgUserProfile
Thanks to @gurkein for the hint - Issue #1178: reverted some changes regarding deprecations
Thanks to @gurkein for the heads up - Issue #1179: added missing fields to Location typ
Thanks to @JochenSeifarth for the hint
- Graph API 12 changes
- Issue #1170: basic support in enum
- Issue #1171: Instagram type changes
- Issue #1172: deprecated fields in page object
- Issue #1173: deprecated fields in User type
- Issue #1174: New User Profile Fields in Instagram Messaging API
- Issue #1175: new fields in Video object
- Issue #1168: Changed customData type to LinkedHashMap
Thanks to @rundoom for the PR - Issue #1169: IgUserProfile translation issue for name="error"
Thanks to @Moon-sparkcentral for the hint and information
- many internal cleanups and refactorings to prepare a better structure
- Issue #1163: IG Messaging Story
Thanks to @rhossei2 for the hint
- Issue #1161: Graph API 11 added to version enum
- Issue #1159: Instagram Messaging support
Thanks to @PavelHumeniuk and @gurkein for the input - Issue #1160: Add instagram_manage_messages permission to FacebookPermissions
- Issue #1154: mark deprecated Version values as deprecated
- Issue #1156: Whatsapp Business Account Webhook
- Issue #1157: Whatsapp Business Account Objects
- Issue #1158: Handle user_ref field of sender in messaging_referrals
Thanks to @swapnilpandey03 and @vikasaini for the input
- Issue #1151: Support of fb_product_category and google_product_category in ProductItem
Thanks to @Alexeyyy for the hint - Issue #1152: Add media_product_type and video_title fields to IgMedia
Thanks to @StephenFlavin for the hint
- Issue #1148: Added connection to media field on IgUser
Thanks to @ernyka for the hint
- Issue #1144: Access to the whats app business account of a page
- Issue #1145: MediaTemplateElement needs access to AbstractButton
- Issue #1141: Add field tagged_time to Post type
- Issue #1142: Replace "owner" field in videolist object with the new From object
- Issue #1137: Graph API 10 added to version enum
- Issue #1138:
ChangeValueFactorycannot handle a mention comment - Issue #1139: Add a better
fromfield implementation
- Issue #1119: license date changed to 2021
- Issue #1120: mark attachment as not accessible due to "privacy rules in Europe".
- Issue #1121: remove circleci stuff
- Issue #1107: use HTTP header field for access token
Thanks to @StephenFlavin for the hint
Attention: this may be a breaking change if you have a customWebRequestorimplementation - Issue #1105: missing fields to
WhatsappMessageTemplateadded - Issue #1103: Graph API 9.0: missing fields added to
AdCreative
- Issue #1101: Graph API 9.0 version added
- Issue #1096: missing ad_id property added
Thanks to @seth-git for the hint - Issue #1097: timestamp added to webhook listener
Thanks to @alex-lx for the hint - Issue #1098: NEUTRAL as a valid RecommendationType added
Thanks to @jfposton for the PR
- Issue #1093: catalog_management permission fixed
Thanks to @w00dg1n for the hint - Issue #1091: Graph API 8.0 - OEmbed support
- Issue #1090: Graph API 8.0 - deprecated fields in
Usertype - Issue #1089: Special Category Ads - new behaviour in 7.0
Thanks to @NenadP for the hint - Issue #1088: fixed DefaultFacebookExceptionGenerator.skipResponseStatusExceptionParsing is too sloppy
Thanks to @DerKeil for the hint
- Issue #1081: "dangling comment" warnings solved
- Issue #1083: Graph api 8.0 version added
- Issue #1084: integration test for test user create/delete added
Thanks to @zzvara for the question
- Issue #416: Common methods should be defined via interface
- Issue #1079: Remove Graph API 3.0 enum
- Issue #946: Use Listener pattern for incoming webhooks
Thanks to @eximius313 for the hint and the examples - code smells removed
- many cleanups without special issues
- Graph API 7.0:
- Issue #1071: version added to
Versionenum - Issue #1072: new permissions added, old ones marked as deprecated
- Issue #1071: version added to
- Issue #1070: deprecated version 2.12 remove from
Versionenum
- Issue #1065: Asset Feed Spec (Ad Creative) support
Thanks to @NenadP for the hint - Issue #1066: Add DebugHeaderInfo to all exception message when available
Thanks to @StephenFlavin for the hint
- Issue #1062 and #1063: Provide way to send binary data with send api
Thanks to @torbenw for the hint
- Issue #1059: Connection hasNext() returns false even if there is a next page
Thanks to @ciprian197 for the bug report
- Issue #1055: Add One-time Notification to messenger API
- Issue #1056: Graph API 6.0 added to
Versionenum
- Issue #1049: java Optional added as mapping type
- Issue #1046 and #687:
Connectionobject added as mapping field
Thanks to @DerKeil and @StephenFlavin for the hints and the input - Issue #1050:
catalog_managementadded to permissions - Issue #422: user customized
EtagCachecan be used now - Issue #1044: Daily Budget field added to
AdCampaignGroup
Thanks to @tudorlesan for the hint - Issue #1045: convenience methods added to Webhook
- Issue #1047: license info (year) updated
- Issue #1048: version 2.11 removed from enum
- Final Release - nothing new
- some cleanup
- Issue #940: moved source level to java 8
- Issue #1000: moved to junit 5
- Build moved to Circle CI
- Instagram HashTag type added
- Graph API 5.0 support added
- Issue #1033: Version enum added
- Issue #1036:
IceBreakerobject added - Issue #1034:
ReplyandReactionsupport added to messenger webhook - Issue #1038: Ads -
user_tasksinstead ofuser_role
- Issue #1025:
instagram_accountsfield added toPagetype
Thanks to @juvirez for the PR - Issue #1026: more missing fields added to
Pagetype - Issue #1023: Support the new private replies on Posts and Comments
- Issue #1024: Missing
open_graph_story_idinRatingsLikeValueadded
Thanks to @CrWEE for the hint and the JSON - Issue #1027: Changed Page.business field type
Thanks to @juvirez for the PR - Issue #1028: Added
PageTabtype
Thanks to @juvirez for the PR - Issue #1029: Added missed required
ProductItemfields
Thanks to @juvirez for the PR - Issue #1030: Whatsapp business account types added
- Issue #1020: Add support for permissions webhooks
Thanks to @Alexalex1432 for the information and JSON
- Issue #1017: Missing value
LOWEST_COST_WITH_MIN_ROASinBidStrategyenum
Thanks to @saurabhnmishra for the hint
- Graph API 4.0 support
- Issue #1013: basic support
- Issue #1015: Messenger templates marked as deprecated
- Issue #1014: Location quick reply is deprecated
- Issue #1012: Postback object is missing "title" field
Thanks to @andrey-popovich for the hint
- Issue #1010: Quickreplies limit increased to 13
Thanks to @andrey-popovich for the hint
- Issue #1008: Rate limit for graph api 3.3
Thanks to @santinomazzocchi for the hint - without issue: more cleanup, especially in the JSON section
- Issue #1003: cleanup internal json implementation
- Issue #1005:
with_tagsis deprecated in Graph API 3.3 - Issue #1004:
DateUtilsfix forpage_fans_citymetric
Thanks to @rberga for the analysis
- Issue #993: Missing fields added to
StoryAttachment - Issue #994:
VideoPolltype added
- Graph API 3.3:
- Issue #989: Version enum changed
- Issue #990: deprecated fields in
Posttype - Issue #991: conversation webhook is deprecated now
- Issue #987: Graph API 2.8 marked as deprecated
- Issue #988:
priorMessagefield added toMessagingItem
Thanks to @chaas for the hint - Issue #983: Facebook Marketing API rate limitation (Ad Account Level Limits)
Thanks to @mikron for the hint - Issue #980 and #981: Video type checked and missing fields added
- Issue #979:
AdCreativeLinkDataChildAttachment.place_datashould be an Object
Thanks to @AdrianMF for the hint - Issue #982: correct bid strategy enum names
Thanks to @Vanley for the PR - Issue #986: introduce
issues_infofield onad-setandcampaign
Thanks to @Vanley for the PR
- Issue #972: code of conduct added
- Issue #975: waffle.io badge removed
- Issue #973: multiple JSON fields with same name fixed
Thanks to @thevietto for the hint
- Issue #970:
FacebookJsonMappingExceptionwhen fetchingHoursobject of a childpage
Thanks to @mknoebel for the hint and the example JSON
- Issue #953: underscore fields added to NLP entity types
- Issue #967:
overall_star_ratingandrating_countfields added toPagetype
Thanks to @AvielNiego for the hint - Issue #965:
FacebookJsonMappingExceptionwhen fetching page object hours
Thanks to @AvielNiego for the hint - Issue #966: connection iterator fixed
Thanks to @amanduggal for the hint
- Issue #959: Missing AdSet Targeting field added
Thanks to @AndreaFalcon for the hint - Issue #960: More Ad types added and some fixed
- Issue #961: API version annotation added
- Issue #962: undefined change values added
Thanks to @thevietto for the hint and the JSONs - Issue #963: licence information changed to 2019
- Issue #956: Some missing fields added to ads classes
Thanks to @AndreaFalcon for the hint - Issue #957:
UrlPayloadcrash for building image attachment
Thanks to @nitrag for the hint and the tests
- Issue #950: osgi bundlor replaced
- Issue #952: missing NLP entities added
- Issue #951: error field added to
NlpResult
Thanks to @RedEagle for the hint and the example
- Issue #944: minimal-json updated to latest code
- Issue #948: lead_retrieval permission added
- Issue #945: unit test coverage improved
- Documentation improvement
- Issue #936 - Improve "Setting persistent menu" section
Thanks to @eximius313 for the hints - Issue #935 - Improve "Setting a Welcome Message" section
Thanks to @eximius313 for the hints
- Issue #936 - Improve "Setting persistent menu" section
DefaulJsonMapperimproved- Issue #938 - extract short circuit methods
- Issue #939 - remove the
JsonMappingErrorHandler
- Issue #930 - Post
sponsor_tagsfield missing - Issue #928 - unversioned constructors removed from
DefaultFacebookClient
- Issue #922: Cleanup old Graph API versions
- Issue #924: Graph API 3.2: add version to enum
Thanks to @pcornelissen for the PR
- Issue #911: remove ant description from readme
- Issue #912: Webhook JSON for new recommendation
- Issue #915: Place.class improvement with new fields
Thanks to @egemenozkan for the hint - Issue #916: Infinite loop while fetching next page
Thanks to @CrWEE for the hint the analysis - Issue #920: Set Graph API version 2.7 to deprecated
- Issue #919: Added tasks field to Account
Thanks to @juvirez for the PR
- Issue #908: Deployment improved
- Issue #909: Connection should construct next & prev page URLs from cursors as a fallback
Thanks to @mrhota for the hint
- Issue #902: Report parameter values when throwing
Thanks to @pkoivisto for the PR - Issue #905:
publish_videopermission added
Thanks to @mekya for the hint - Issue #904: Changes for the new "recommendations" feature
- Graph API 3.1
- Issue #899: basic support
- Issue #900:
LiveVideoreplacetypewithsourcefield
- Issue #892 -
LIKES_ADDmissing for user object in webhook
Thanks to Mikhail (Facebook DM) for the hint - Issue #893 - Add
userwebhook change value that contains a link to a page
- Issue #889 - switch to java 7
- Issue #890 - replace old custom base 64 implementation
- Issue #888 - improved exception logging
- Graph API 3.0
- Issue #885: Basic support
- Issue #886: Permissions added and cleanup
- Issue #882: new field to instagram comments/replies
Thanks to @amanduggal for the hint and PR - Cleanup:
- Issue #881: picture conversion helper added
- Issue #880:
Datemapping added - Issue #877: old readonly API removed
- Issue #876: version 2.5 is deprecated now
- Issue #879:
getCaptions()method throws NPE inVideoobject whencaptionsis null
Thanks to @CrWEE for the hint - Issue #878: Some
OpenGraphRatingfields mapped with extra quotation marks
Thanks to @CrWEE for the hint
- Issue #865: Add logging formatter for JUL
- Issue #868: Support for Instagram Content Publish Scope
Thanks to @AndreaFalcon for the hint - Issue #870: Deserialisation issue with JsonNumber
Thanks to @ErfanMaybe for the hint - Issue #872: Improve deserialisation according to #870
- Issue #873: Check April 2018 breaking changes
-
Instagram support
- Issue #854: add
instagram_business_accountto Page type - Issue #855: create
IgUsertype - Issue #856:
IgMediatype - Issue #859: webhook objects
- Issue #857:
IgCommenttype - Issue #858: missing connections added
- Issue #851: Request for support of Facebook Instagram API
Thanks to @martinmalek for the hint
- Issue #854: add
-
Messenger Platform 2.3 changes
- Issue #861: Phone and email quick replies
- Issue #862: Request thread control for the Handover Protocol
- Issue #845: Graph API 2.12 enum added
- Issue #846: Graph API 2.12 - marked field in
Eventtype as deprecated - Issue #847:
screennamesadded toPagetype
Thanks to @joelforessottile for the hint - Issue #848: old eclipse stuff removed
Thanks to @ghost for the hint - Issue #849: missing id lists added to
Usertype
Thanks to @JB4GH for the hint - Issue #701: Solution for integration testing without make the endpoint urls changeable
- Issue #850: Add invitable friends to
Usertype - Issue #852: Add instagram permissions
- Issue #844: fix "bundlor" problem
- Issue #834: directories restructured
- Issue #836: Copyright year changed to 2018
- Issue #837:
canReplyPrivatelyadded toPosttype
Thanks to @dmtar for the hint - Issue #838:
DefaultFacebookClient.fetchObjects()uses Json array
Thanks to @grumseren for the hint and analysis
- Issue #833: Facebook Messenger - builtin NLP entities added
Thanks to @RedEagle for the hint - Issue #830: Git branches reorganized
- Issue #791: README.md cleanup
- Issue #802: Old Version enum values removed
- Issue #746: Make
FacebookPermissionenum public
- Issue #577: Move permissions in one class
- Issue #642: Use AssertJ in core unit tests
- Issue #677: Remove obsolete FQL methods
- Issue #692: Remove Rest API access
- new Json parser
- Issue #321: Replace "Json.org" parser with "minimal-json" parser
- Issue #519: unicode (emoji) fix added to minimal-json (port of #501)
- Issue #585: improve the
JsonAssertutil
- Logging
- Issue #31: support user-definable logging via slf4j
Great idea @revetkn - Issue #635: rename logger categories
- Issue #31: support user-definable logging via slf4j
- Code quality
- Issue #339: Code quality fix - Collection.isEmpty should be used
Thanks to @faisal-hameed for this PR - Issue #345: Code quality fix - @Override annotation should be used
Thanks to @faisal-hameed for this PR - Issue #344: Code quality fix - Redundant field intializers
Thanks to @faisal-hameed for this PR - Issue #189 and #190: create collections with needed size
Thanks to @profes for the report and PR
- Issue #339: Code quality fix - Collection.isEmpty should be used
- Cleanup
- Issue #299:
StoryAttachmentchanged - Issue #257:
PostandCommentuse sameAttachmenttype - Issue #302: Graph API 1.0 support removed
- Issue #314:
Event#getPicturereturnsPictureinstead of String - Issue #311: Remove
Attributionfield fromPosttype - Issue #310:
Eventvenue field has wrong type - Issue #323: Remove deprecated classes from
Posttype - Issue #337:
Photo#getComments()returns List of comments instead of Comments object
Thanks to @vido88 for this report - Issue #364: Remove inner class
MessageTagfromPost - Issue #80: Exception Generator added
Thanks to @slumx for the report - Issue #195:
Likestype improved - Issue #113:
Eventcan contain multiplevenues
Thanks to @guychauliac for the PR - Issue #367: old inner class
commentsremoved fromcommenttype - Issue #402:
Pagefieldlocationshould be of typeLocation - Issue #301: deprecated FQL methods removed
- Issue #609: Remove experimental classes
- Issue #467: Use
CommentsandLikesinPhototype - Issue #452: fix bug from #448
- Issue #299:
- Issue #824: Sticker field missing from messages
Thanks to @CrWEE for the hint - Issue #825: Add
MessagingItem.isAppRoles()
Thanks to @marceloverdijk for the hint - Issue #826: Should the
OpenGraphTemplatePayloadhave elements instead of buttons?
Thanks to @marceloverdijk for the hint
- Graph API 2.11
- Issue #816: 2.11 Version added
- Issue #817: Webhook sender_name and sender_id is from now
- Messenger Platform 2.2
- Issue #819: messaging_type enum added
- Issue #820: Broadcast API
- Issue #818: Add media template
- Issue #793: Added convenience constants and methods
- Issue #794: Added pass/take thread control callbacks
- Issue #797: Convenience messaging item methods
- Issue #798: Add more is* methods in InnerMessagingItem
- Issue #796: Added convenient has* methods to MessageItem
- Issue #803: Set old version values to deprecated
- Issue #801: Add Open Graph Template to Send API types
- Issue #800: Support default_action in Generic Template element
- Issue #799: Add is_test_payment to PaymentSummary
- Issue #810: Add Stand By webhook callback
- Issue #809: Add App Roles webhook callback
- Issue #805: Add object for Messenger Code API
- Issue #811: Add UserProfile for fetching user information in messenger context
- Issue #804: Add object representing Messenger Profile API data
- Issue #782: Support custom wit.ai NLP in Messenger
- Issue #781: Fix Java 7 built on Travis CI
- Issue #787: Let Travis CI built RestFB with Java 9
- Issue #784: Prevent nullpointer when null quickReplies in
Message
Thanks to @SijmenHuizenga for the PR - Issue #785:
ChangeValueFactorytries to convert a string toJsonObjectand throws exception
Thanks to @maurocanuto for the hint and the example JSON
- Issue #765: Messenger Platform 2.1: support NLP on messages
- Issue #779: Ads: Reach Frequency Prediction type is missing
- Graph API 2.10 support
- Issue #760 and #773: basic support added
Thanks to @jcdavidconde for the hint - Issue #763: Webhook updates for
eventadded to factory
- Issue #760 and #773: basic support added
- Messenger Platform:
- Issue #757: shareable option is missing in Send API
- Issue #766 : Policy Enforcement Callback
- Issue #753: Bugfix for uploading video captions
Thanks to @frank72833 for the hint - Issue #769:
VideoCaptiontype added - Issue #758:
RATINGS_RATING_EDITadded to Webhook types - Issue #759:
FEED_VIDEO_REMOVEadded to Webhook types - Issue #752: Add fields missing from
AdCreativeLinkDataandAdCreativeVideoData
Thanks to @pkoivisto for the PR - Issue #756: Add missing fields for
AdCreativeLinkDataCallToActionValue
Thanks to @pkoivisto for the PR
- Issue #741:
commentIdfield added toFeedReactionValue
Thanks to @thienit5 for the hint - Issue #742:
TargetingSentenceLineimproved
Thanks to @eipark for the hint - Issue #744: add
open_graph_story_idto ratings comment
Thanks to @abid76 for the hint - Issue #745:
Post.getLikesCountshould return 0 if no likes field is found
Thanks to @bogdanlupashko for the hint - Issue #748: Add missing
thread_keytoPageConversationwebhook type - Issue #749: Webhook from editing a visitors post maps to
FallBackChangeValue
Thanks to @CrWEE for the hint
- Issue #730: Add
permalink_urltoComment
Thanks to @ashishnargundkar for the hint - Issue #729: Add
target_countriesto `LookalikeSpec
Thanks to @graysky for the hint - Issue #728:
TargetingSentenceLinemissing
Thanks to @eipark for the hint - Issue #732: Getter for
DebugTokenErroradded
Thanks to @ClaudioBull for the PR - Issue #733: Spring mapping issue fixed
Thanks to @bogdanlupashko for the hint - Issue #735: Webhook "mention" ChangeValue added
Thanks to @torbenw for the hint - Issue #736:
X-Page-UsageandX-App-Usagereturn JSON instead of percentageString - Issue #738:
PersistentMenuInvalid keyscallToActions
Thanks to @thienit5 for the hint
- Issue #723:
AdReportRunFieldstype added
Thanks to @eipark for the hint - Issue #725: Reactions support for
Comments - Issue #726: Fetching device access tokens fixed
- Graph API 2.9:
- Issue #713: basic Graph API 2.9 support
- Issue #714:
short_nameadded toUsertype - Issue #716:
engagementadded toURLtype - Issue #715:
fieldsinsubscriptionsobject changed
This is a breaking change! Check the javadoc
- Messenger Platform 2.0:
- Issue #717: ID matching types added
- Issue #706: multiple photos support added to Webhook type
Thanks to @GithubMood for the hint - Issue #709: Integration test for posting to a group added
- Issue #708: Fetching users from group integration test added
Thanks to @saveSession for the hint
- Issue #691: Rest API set to deprecated
- Issue #690: Contributing.md added
- Issue #696: Version 2.2 set to deprecated
- Issue #694: Webhook: missing ChangeValues RATINGS_REACTION_ADD/EDIT/REMOVE
- Issue #697: Missing fields in post.call_to_action added
Thanks to @nemzsom for the hint - Issue #699: README.md updated
Thanks to @chena for the PR - Issue #698 and #702: fetchObjects normelizes IDs
Thanks to @UbaldoF and @oferfort for the hints - Issue #693: Adding setters to the facebook endpoint URL's
Thanks to @jaguth for the PR
- Messenger Platform 1.4 support
- Issue #680:
PersistentMenuadded - Issue #683: quick replies limit increased to 11
- Issue #682:
localeadded toGreeting - Issue #681: optional
namefield added to phone recipient - Issue #676:
image_aspect_ratioadded toGenericTemplatePayload
- Issue #680:
- Issue #673:
AdStudytype added
Thanks to @hkroger for the hint - Issue #674:
is_canceledadded toEventtype
Thanks to @DerKeil for the hint - Issue #672:
snapshot()method added to connection iterator
Thanks to @DerKeil for the information and the hints - Issue #679:
call_to_actionadded toPosttype
Thanks to @CrWEE for the hint - Issue #685:
child_attachmentsadded toPosttype
Thanks to @nemzsom for the hint - Issue #686:
comment_idadded toFeedLikeValuewebhook type
Thanks to @Glenn-Bergmans for the hint
- Issue #660: Leadgen Webhook support added
Thanks to @pibernardi for the hint and the test data - Issue #661:
business_managementpermission added
Thanks to @eipark for the hint - Issue #662: unit test improvements
- Issue #663:
addToandremoveToinMessagetype fixed - Issue #664 and #665:
UserPermissionadded
Thanks to @anenkov for the PR - Issue #666:
isLikemethod added to Messaging Webhook - Issue #667:
photofield added toFeedCommentValue
Thanks to @pcricardo for the hint - Issue #669:
messagefield added toFeedPhotoAddValue
Thanks to @incredibledevs for the hint - Issue #671:
videofield added toFeedCommentValue
Thanks to @pcricardo for the hint - Issue #670: Some code smells removed/fixed
- Issue #657: Add
equals,hashcodeandtoStringto Send API types
Thanks to @marceloverdijk for the hint - Issue #655:
WorkExperiencetype added - Issue #656:
SavedMessageResponsetype added - Issue #654: OpenGraph types added
- Issue #652:
InstagramUsetype added
Thanks to @hkroger for the hint - Issue #639:
LiveVideotype added - Issue #650:
is_transientfield added to error
Thanks to @hkroger for the hint - Issue #651: License header changed to 2017
- Issue #634:
FEED_REACTION_EDITwebhook type added - Issue #636:
FEED_VIDEO_EDITEDwebhook type added - Issue #637:
CallToActionobject
Thanks to @haresh208 for the hint
- Issue #632: fix error in javadoc
Thanks to @alexconlin for the PR - Issue #631: performance issue with stacktrace during logging
Thanks to @hkroger for the hint
- Messenger Platform 1.3 support
- Issue #619: Passing parameters via M.me links
- Issue #620: List Template
- Issue #621: seq id is deprecated
- Issue #622: Checkbox plugin support
Thanks to @marceloverdijk for the hint - Issue #623: messaging_referral event
Thanks to @marceloverdijk for the hint
- Issue #625: Bugfix for logger name issue
Thanks to @torbenw for the bug report - Issue #626: Add
toStringmethod toMessageRecipientImpls
Thanks to @marceloverdijk for the hint - Issue #618:
deleteObjectsupport thread settings now
Thanks to @marceloverdijk for the hint - Issue #574 and #617: Thread settings enums added
Thanks to @marceloverdijk for the hint and PR - Issue #615 and #616:
NotificationTypeEnumadded
Thanks to @marceloverdijk for the hint and PR - Issue #613:
fbtrace_idadded toFacebookGraphException
Thanks to @marceloverdijk for the hint - Issue #612:
MessageRecipientinterface added
Thanks to @marceloverdijk for the hint
- Cleanup:
- Issue #602: Readme changed to describe only basic usage
- Issue #604: Experimental package marked as deprecated
- Issue #608: unused imports removed
- Issue #605: more targeting improvements
Thanks to @matthewbogner for the hint and PR - Issue #607: PaymentItem credentials changed to credential Thanks to @barhun for the hint
- Issue #603: Basic logging change to resolve #31
- Graph API 2.8:
- Issue #589: Feed Targeting
- Issue #590: User Bios
- Issue #588: Basic support
- Graph API 2.7:
- Issue #517: Add missing field to
VideoCopyright
- Issue #517: Add missing field to
- Messenger Platform:
- Issue #594: add
sticker_idtoMessageItemclass andMessagingAttachmentclass
Thanks to @Abdelrahman-Hasan for the hint - Issue #596: Improve the
SendResponse
Thanks to @marceloverdijk for the hint - Issue #584: add
attachment_idandis_reusabletoMediaAttachmentclass
Thanks to @Abdelrahman-Hasan for the hint - Issue #581: Please add a
Message#addQuickReplies(multiple)
Thanks to @marceloverdijk for the hint - Issue #582: Throw exception on adding too many
QuickReplies - Issue #580: Wrong Date in
FlightScheduleleads to error code when sending - Issue #592: Messenger documentation bug
Thanks to @vraffy for the hint
- Issue #594: add
- Issue #587: Added
ChangeValuetypeFEED_REACTION_ADD
Thanks to @misternerd for the hint - Issue #586: Wrong
appsecret_proofcreated byEncodingUtils
Thanks to @mchmielarz for the hint - Issue #579: Move license files to root
- Issue #600 and #601:
NPEon emptymessage_tags
Thanks to @anenkov for the PR - Issue #599: add support for interests in
post.feed_targeting
Thanks to @matthewbogner for the hint and PR - Issue #597:
relevant_until_tsfield inFeedTargetingis missing
- Messenger Platform Update:
- Issue #566: new QuickReply types added
Thanks to @marceloverdijk for the hint - Issue #567:
CallButtonadded - Issue #568:
ShareButtonadded - Issue #571: Field
webview_height_ratioadded toWebButton - Issue #569:
BuyButtonadded,Paymentwebhook type added - Issue #570: Webview and Extension fields added
- Issue #566: new QuickReply types added
- General Cleanup:
- Issue #556: log exceptions that can be ignored
- Issue #559: log more exceptions and use
lastIndexOfwith Char - Issue #557: use
isEmpty()instead ofsize()where possible - Issue #561: catch
Exceptioninstead ofThrowable - Issue #564: types should extend
AbstractFacebookType
- Issue #552: Added missing fields to comment attachments
Thanks to @mnshdw for the PR - Issue #544: Add
toString()method to webhook classes
Thanks to @marceloverdijk for the hint - Issue #553: Add
SenderActionenum
Thanks to @marceloverdijk for the hint - Issue #576: Fixed issue
MessagingItem.getItemnot returningReadItem
Thanks to @marceloverdijk for the PR - Issue #555:
FacebookPermissionsscope changed to public
Thanks to @rhino88 for the PR
- Issue #548 and #549: Support for
x-page-usageheader
Thanks to @kukido for the PR - Issue #543:
getCoverPhotoreturnsPhoto-type now
Thanks to @torbenw for the hint - Issue #546: account linking support for webhook
Thanks to @marceloverdijk for the hint - Issue #547: account linking support for send API
- Issue #542: greeting
thread_settings
Thanks to @uwol for the PR - Issue #541: quick replies not working correctly
- Issue #539: Additional change values for webhook
Thanks to @CrWEE for the PR - Issue #540: fetch device access token with Graph API 2.7 fixed
- Issue #538: Ad types checked for usage of fields with type
object - Issue #537: Integration test for likes/fan_count
- Issue #536: Graph API 2.0 deprecated
- Issue #535: Targeting rule deserialisation fixed
Thanks to @hkroger for the hint
- Issue #391, #532 and #533:
LifeEventtype added
Thanks to @quangpld for the PR - Issue #522: TargetingProductAudienceSubSpec setRule not visible outside package
Thanks to @hkroger for the hint - Issue #525: Add
Quick repliessupport toSend API
Thanks to @alexdlaird for the PR - Issue #524: Message object should contain a
metadatafield
Thanks to @alexdlaird for the PR - Issue #523:
AdsImageCropsdeserialization doesn't work
Thanks to @hkroger for the hint - Issue #528 and #527: Removed
productfromcom.restfb.types.Payment
Thanks to @fmachado for the PR - Issue #526:
jsonObject.keys()as String-typed Iterator
Thanks to @leandroutn for the hint - Issue #529: cleanup - Add unittests to utils package
- Issue #531: Missing field
publisher_platformsin Targeting class
Thanks to @huymluu for the hint - Issue #530: Webhooks: add unhide for all HIDE-able elements
- Issue #513: More Webhook ChangeValue types added
Thanks to @gnagy for the PR - Issue #501: Error when sending smiley fixed
Thanks to @bqcuong2212 for the hint - Issue #496: TargetingProductAudienceSubSpec serialization
Thanks to @hkroger for the hint - Issue #518: Deserializing Lookalike Custom Audience fails
Thanks to @hkroger for the hint - Issue #511: Adding read-receipt item to web hook.
Thanks to @alexdlaird for the PR - Issue #514: Graph API 2.7 support
- Issue #516: Graph API 2.7 - Add missing fields to Video type
- Issue #516: Graph API 2.7 - Add missing is_webhooks_subscribed field to Page type
- Issue #512: Append classDefinition to ChangeValueFactory log warning message
Thanks to @gnagy for the PR
- Issue #509: Marketing API - form leads added
- Issue #508:
creative_idfield removed fromAdCreative
Thanks to @hkroger for the hint - Issue #507:
AdCreativeLinkDataCallToActionvalue cannot be deserialized
Thanks to @hkroger for the hint - Issue #506: Add a Gitter chat badge to README.md
- Issue #505: MessagingItem"` timestamp field is always null
Thanks to @alexdlaird - Issue #504: Messenger fallback attachments
Thanks to @alexdlaird for the PR - Issue #503: Location Attachment and Receipt Template Improvements; Airline Templates
Thanks to @alexdlaird for the PR - Issue #502: Fallback Attachment Fails Parsing (String, Not Object)
Thanks to @alexdlaird - Issue #500: EVEN MORE Attachment Improvements (Plus Some Message Attributes)
Thanks to @alexdlaird - Issue #498: Custom Audience missing lookalike specific fields
Thanks to @hkroger for the hint - Issue #497: When creating catalog, you need undocumented password field
Thanks to @hkroger for the hint
- Issue #495 and #493: Messenger Attachment Improvements
Thanks to @alexdlaird for the PR - Issue #494: Incorrect Javadoc throws declaration
Thanks to @eebbesen for the PR - Issue #491:
is_echofield added toMessageItem
Thanks to @alexdlaird for the PR - Issue #490:
SendResponseadded as Send API Response
Thanks to @alexdlaird for the hint - Issue #487: product catalog management API added
Thanks to @hkroger for the hint - Issue #486: more comples structure for
rulefield
Thanks to @hkroger for the hint - Issue #484:
TargetingProductAudienceSubSpec.retetionSecondschanged
Thanks to @hkroger for the hint - Issue #483: convenience constructor added to
IDName
Thanks to @hkroger for the hint - Issue #482: Missing Search API types added
Thanks to @hkroger for the hint - Issue #481: Url class
OGObjectis missingimage
Thanks to @Enalmada for the hint - Issue #480: Sonar URL changed
- Issue #479: missing fields in
AdCreativetype
Thanks to @hkroger for the hint - Issue #478: Error while reading
AdGroup
Thanks to @hkroger for the hint - Issue #476: Sonar - fix connection issues
- Issue #475: Sonar - xml indentation changed to 2 chars
- Issue #472: setting welcome message for messenger bot
Thanks to @bqcuong2212 for the hint
- Issue #460: Issue with TOS fields in
AdAccount
Thanks to @hkroger - Issue #461: Page is missing
owner_business
Thanks to @hkroger - Issue #462: Retrieve business userpermissions
Thanks to @hkroger - Issue #463: Provide JsonObject to Map<String, T> conversion
- Issue #464: Custom/Lookalike Audience managment
Thanks to @hkroger - Issue #468: getter/setter test base class improved
- Issue #469: sonar analysis added to travis.yml
- Issue #470:
pom.xmlimproved - formatting and minor changes - Issue #471: logging changed,
String.format is used
- Issue #458:
FundingSourceDetailscauses an exception
Thanks to @hkroger - Issue #457:
getLoginDialogUrldoes not support reauthentication
Thanks to @hkroger - Issue #456: add "hide status" to webhook types
- Issue #455: Add rate limiting header
- Issue #454: Post: story tags are missing
- Issue #453:
likesfield inPagemy be a list instead of long
Thanks to @vido88 - Issue #451: Successful login redirect contains "expires_in" instead of expires
Thanks to @Mobe91 - Issue #448: PageRating missing fields / failing parsing
Thanks to @ronaldheft for hint and PR
- Graph API 2.6 support
- Issue #435: missing field
content_tagsinVideotype - Issue #438: missing
PageLabeltype - Issue #441:
Messagingwebhook types (Messenger Platform) - Issue #443: Send Api types (Messenger Platform)
- Issue #445: Device Login URL changed
Thanks to DigitalXXL
- Issue #435: missing field
- Issue #444: bugfix - corrupted
Parametername
Thanks to @rheylen - Issue #439: cleanup - change boolean to Boolean
- Issue #440: Adding
xmpp_loginextended page permission
Thanks to @alexdlaird for PR
- Graph API 2.6 support
- Issue #433:
PageAdminNotetype is missing - Issue #431:
Pagestypelikesrenamed tofan_count - Issue #430: Post
reactions - Issue #428:
Videotype has fieldlive_audience_count - Issue #427:
Videotype new fieldlive_status type - Issue #426: new permission
pages_messaging_phone_number - Issue #425: new permission
pages_messaging - Issue #437: reactions added to
VideoandPhototype - Issue #424: Version enum
- Issue #433:
- Issue #423: Missing
page postvalues in webhook type
Thanks to @volkenborn for providing some JSON files - Issue #419: add missing permission
pages_manage_instant_articles - Issue #418: Improve
GraphResponsetype - Issue #415: Missing
getVideoData()on `com.restfb.types.Message.Attachment
Thanks to @lalitg14 for the hint and the JSON
- Issue #409 and #410: Handled missing rating, is_draft, language fields in PageRating
Thanks to @venilnoronha for bug report and PR - Issue #411: Custom RestFB tags added to javadoc
- Issue #390:
Notificationtype added - Issue #403: Missing fields in
Message Attachment - Issue #404: Integration test for posting a image to a group
Thanks to @kfredy for question - Issue #405: Missing field
sharesadded toMessagetype
Thanks to @ajeetsk for hint - Issue #407: Build files updated
- Issue #377: Check the permissions
- Issue #379: Missing fields in
AppRequesttype - Issue #380: Missing fields in
Eventtype - Issue #381: Missing fields in
Grouptype - Issue #382: Missing fields in
Messagetype - Issue #383: Missing fields in
Phototype - Issue #384: Missing fields in
Usertype - Issue #385: Missing fields in
Pagetype - Issue #388: Missing fields in
Conversationtype - Issue #389: Missing fields in
PageCallToActiontype - Issue #392: Deprecated types marked
- Issue #393: Missing fields in
Posttype - Issue #394 and #395:
PageRatingsare outdated
Thanks to @anenkov for PR - Issue #396 and #397:
Commentsmissescan_commentfield
Thanks to @anenkov for PR - Issue #398: Missing
parent_idfield inPosttype
Thanks to @vido88 - Issue #400: duplicate
typefield in several types - Issue #401: Webhooks Fields update
Thanks to @cmmoran
- Issue #375: "private message page replies" support added
- Issue #369:
Translationtype added - Issue #370:
PlaceTagtype added - Issue #371: deprecation information for permissions add
Thanks to @lomon for hint - Issue #368:
Milestonetype added - Issue #373:
Userfields missing
Thanks to @lomon for hint - Issue #366:
Applicationtype missing fields added - Issue #358:
Paymenttype added - Issue #343: Webhook types added
- Issue #363: example code moved to repository
- Issue #362: waffle.io badge added
- Issue #356:
PageCallToActiontype added
- Issue #355: copyright year changed to 2016
- Issue #354: changelog syntax changed to markdown
- Issue #352: access to Facebook HTTP debug headers and HTTP headers in general
Thanks to Alex Conlin for input - Issue #351:
last used timefield added toPage-type - Issue #340: Parsing `yyyy-MM-dd produces wrong date
- Issue #338: wrong date format for
Worktype fieldsstartDateandendDate
Thanks to @PetrF0X for input - Issue #336:
Albumtype -fillPicturemethod uses wrong type for mapping the image - Issue #335: Access post likes summary
has_likedandcan_likevalues
Thanks to @jarylchong for input - Issue #186:
Page ratingtype rewrite
Thanks to Ron Heft for input
- Issue #328: Facebook Exception provides access to raw error json
Thanks to Fran Sanchez for input - Issue #330: Bugfix:
placefield inEvent-type changed toPlace-type
Thanks to Matthew Gillingham for input - Issue #331:
albumfield and other fields added toPhoto-type
Thanks to @tsurelad for input - Issue #333:
commentsand more fields added toAlbum-type
Thanks to Paolo for input
- Issue #317: Marketing API improved
- Issue #324:
message_tagsfield added toPost-type
Thanks to Miguel Sandim for input - Issue #325: missing fields added to
Comment-type
Thanks to Miguel Sandim for input - Issue #322: missing fields added to
Video-type
Thanks to @aonischenko for input
- Issue #315 and #316: Graph API 2.5 support
- Issue #122: Enum support added to
DefaultJsonMapper
Thanks to @MusikPolice for the input - Issue #159: Marketing API support added
Thanks to @yange for the input - Issue #218: Value methods for
PageSettings - Issue #289: Osgi bundle
Thanks to @skaluva for the PR - Issue #289: integration test for
/me/likes - Issue #303: LICENSE added to root
- Issue #304: Missing fields added to
Locationtype - Issue #305:
facebook-api-versionHTTP header is logged - Issue #307: Missing fields added to
Insighttype - Issue #308:
DefaultJsonMappertest coverage improved - Issue #309: Cleanup - formatting and imports
- Issue #312:
Event.getPicture()fixed
Thanks to @OhGhie4iew - Issue #313:
CoverPhotoadded toUsertype - NoIssue: documentation improved on website
- Issue #252: strange events behaviour
Thanks to Paul Myburgh - Issue #277: version enum changed - `LATEST added
Thanks to @skaluva - Issue #286:
likesfield inCommenttype changed
Thanks to Bogdan Neacsa
- Issue #273: Normalize license header
- Issue #271: Add
devicesfield toUser-type - Issue #270: Graph API 2.4 -
Video-type new fields - Issue #267: Wrong mapping for (Feed)Targeting
Thanks to @Karnifexx - Issue #266: general Graph API 2.4 support
- Issue #265: PR - Blank URL in BatchRequest
Thanks to @ehrmann - Issue #260:
ProfilePictureSourceforPage-type - Issue #246: Commens/Likes added to
Videotype (incl special count method)
Thanks to @anenkov
- Issue #261:
targetingfield missing inPost-type
Thanks to @Karnifexx - Issue #262: mapping exception when using
Postwithfeed_targetingandtarget city
Thanks to @Karnifexx - Issue #263:
full_picturefield missing inPosttype
Thanks to @CannyDuck
- Issue #258: Device Access Token support added
- Issue #256: Using FeedTargeting wrapper when posting
Thanks to @Karnifexx - Issue #249 and #248: PR Post is hidden wrong place
Thanks to @2bitoperations - Issue #247: Inefficiency in DefaultFacebookClient
Thanks to @lawrence-dol - Issue #245: FacebookClient (interface) publish method missing
Thanks to @lawrence-dol - Issue #243:
appsecret_proofintegration tests - Issue #220: Webhooks (RTU) subcription high level API
Thanks to @FrancoisThareau - Issue #207: Graph API 2.3 video playlist support
- Issue #221: Add feed_targeting object and addfield to Post type
- Issue #226: Cleanup
- Issue #227: Mark Version 1.0 as deprecated
- Issue #228: Update example code
- Issue #229: Add
scopesfield toDebugTokenInfo-type - Issue #230:
usernamefield inUsertype is deprecated
Thanks to @ashrithg - Issue #231: Added
hoursfield toPageresponse
Thanks for the pull request to Mattias Holmqvist - Issue #235: Add more fields to
DebugTokenInfo-type
Thanks to @fern - Issue #236: Bugfix:
obtainUserAccessTokenwill not validate code infb_signed_request
Thanks to @frett - Issue #237: Comments regarding location and venue deprecation added
Thanks to @Blarff
- Issue #223: access token parsing for Graph API 2.3 added
Thanks to @SmokyBot - Issue #224: javadoc improvement regarding how some fields are filled
Thanks to @munwaikong
- Issue #219:
is_hiddenandis_publishedfields added toPost-type
Thanks to Karnifexx - Issue #215: FB error without "type" not handled properly
Thanks to @tonyd - Issue #214: Connection cursor broken
Thanks to @slumx and @naneunga - Graph API 2.3 support
- Issue #200: Graph API 2.3 hint
Thanks to Aurelie Vache - Issue #201: add new API Version to enum
- Issue #202: add
user_postspermission - Issue #203: Graph API debug mode
- Issue #204: add field
admin_creatortoPost-type (Page Post only) - Issue #205: new page fields
- Issue #206: new page settings
- Issue #208:
Pagefeatured videos collection - Issue #209:
publishedfield added toVideo-type - Issue #210: Video custom thumbnail
- Issue #211: Video new fields
- Issue #212:
read_friendlistspermission isread_custom_friendlists - Issue #213:
publish_pagespermission
- Issue #200: Graph API 2.3 hint
- Issue #196: Logout Url Builder added
Thanks to Fagner Brack - Issue #193:
AdVideosupport merged
Thanks to @maczam - Issue #192: ETag thread safety
- Issue #191: cursor support added
Thanks to @oferfort - Issue #187: Findbugs and Intellij inspection fixes
Thanks to Damian Pawlowski - Issue #106: ETag support added
- Issue #52:
ScopeBuilderadded
Thanks to Broc Seib for the input
- Issue #93: obtain user access token method added
Thanks to Johno Crawford - Issue #173: http delete added
Thanks to Eric Hydrick - Issue #176: DefaulFacebookClient - missing constructor added
Thanks to Denis Bardadym - Issue #177:
age-rangefield added toUsertype - Issue #179 + #171: restfb website moved to gh pages
Thanks for the input to Marcel Stör - Issue #181: binary post Integration test added
Thanks to Rick Fischer
- Issue #149:
can_hideandis_hiddenfields added
Thanks for input, code snippets and review to Aurelie Vache - Issue #154: deprecated constructors flagged with annotation
- Issue #155: version 1.7.1 prepared
- Issue #156:
VersionEnum fixed
Thanks to Aurelie Vache - Issue #158: experimental high level API added
- Issue #160: old FQL query and multiquery method set to deprecated
- Issue #161:
objectfield added toComment-type - Issue #164: additional details added to facebook exception
Thanks to Chandler - Issue #166: Copyright updated
- Issue #168: User.Education can handle String-only year
Thanks to @suryaganeshv - Issue #169: unittest fixed for java 8
- Issue #7: speed up date parsing,
DateFormatStrategiesadded
Thanks for input and code review to @inthepocket, Marcel Stoer, Mike Hazelwood, Peter Vahlstrup - Issue #139: performance boost section added to website
- Issue #58:
JsonArrayserializable
Thanks to @EpiXl33t, @rackom - Issue #44: DefaulWebRequestor should not close binaryAttachment stream
Thanks to Marcel Stoer - Issue #138:
Thread-type added - Issue #145, Issue #146, Issue #150: Graph API 2.2 support added
- Issue #133: comments and likes total count API unified
- Issue #143: API Versioning added to other endpoints
Thanks to @munwaikong - Issue #48: make types mutable
Thanks to Courtney Robinson, Broc Seib, Marcel Stoer - Issue #144: API check util added
- Issue #136: integration test configuration enhanced
- Issue #130:
URL-type replaced by a currentURL-type implementation
- Issue #131: lombok library added to generate getter automatically
- Issue #129: deleteObject bug using Graph API 2.1 fixed
Thanks to @Rekoe - Issue #128: total count added to connection
Thanks to @alfredoivan - Issue #99: obtaining extended access token via Http GET
Thanks to Venkateswaran S - Issue #82:
Review-type added
Thanks to @bhargavr - Issue #73: Missing field added to
Group,Metadata,Page,Post - Issue #72: Likes and Comments count fixed in Post object
- Issue #71: fetchObjects fails if non of the ids exist fixed
Thanks to @oferfort - Issue #21:
User.Picture-type added - Issue #19: Logging documentation improved, example refreshed
- Issue #15: empty list json issue fixed
Thanks to Shaya Potter - Issue #12: example build.xml modified to find the restfb.jar
Thanks to Shaya Potter - Issue #3:
DeAuth-type added - lot of unittests added
- integration tests added
- Issue #119: basic support for Facebook API versioning added (unversioned, v1.0, v2.0, v2.1)
- Issue #121:
category_listfield added toPlace-type
Thanks to Quentin Rousseau - Issue #109:
Photo.Tagx and y changed to Double
Thanks to Peter Vahlstrup - Issue #110:
Backdated timeandgranularityadded toPhoto-type
Thanks to Peter Vahlstrup - Issue #107:
websitefield added toPage-type
Thanks to Damian Pawlowski - unit test reorganized, mvn test is working now correctly
- some unit test added to check some issues
- Fix for regression in 1.6.13 where one DefaultFacebookClient constructor override would ignore the supplied
WebRequestor and JsonMapper and instead use the default implementations.
Thanks to AlekseiS
-
Support for
appsecret_prooffunctionality.
Thanks to Daniel Piet and Mike Champion. -
Now support signed request parsing with new
FacebookClient.parseSignedRequest().
Thanks to Josef Gierbl for the patch. -
Support for specifying content type for binary attachments.
Thanks to UglyTroLL. -
Added
can_commentandparentfields toComment-type.
BREAKING CHANGE:Post.getCount()is nowPost.getTotalCount()per July FB API changes.
Please request '{id}/comments?summary=true' explicitly if you would like the summary field which contains the total_count
Thanks to Jens Peters for the patch. -
FacebookGraphExceptionnow hasgetErrorCode()andgetErrorSubcode()in the event that FB returns these. Previously this was only available forFacebookOAuthException.
Thanks to Peter Vahlstrup. -
Fix for
Venue-type (added newidfield)
Thanks to sbisht and neXus1987 -
Added missing fields to
Messagetype.
Thanks to Felipe Kurkowski. -
Added missing fields to
Commenttype.
Thanks to Jan Schweizer. -
Added integer (0, 1) -> boolean JSON serialization.
Thanks to Tom Zellman. -
Convenience override of
FacebookClient.executeBatch()
Thanks to loicAG. -
Added missing fields to
Event-type
- Now support Graph API FQL endpoint with new
FacebookClient.executeFqlQuery()andFacebookClient.executeFqlMultiquery().FacebookClient.executeQuery()andFacebookClient.executeMultiquery()have been deprecated.
Thanks to Ofer Fort for the patch. - Fixed
expiresparsing inAccessToken.fromQueryString().
Thanks to Chris Petersen. - Added
can_uploadfield toAlbum-type.
Thanks to Chris Petersen. - Added
status_typefield toPost-type.
Thanks to Shaya Potter. - It is possible for Facebook to return a Place's Location object as a String instead - added Place.getLocationAsString().
Thanks to Ido for finding this. - Added
currencyfield toUser-type.
Thanks to Timo Maaranen for reporting this. - Added
general_infofield toPage-type.
Thanks to Brendan Dahl for reporting this. - Added
link,subject, andformer_participantsfields toConversation-type.
Thanks to spiffychick for reporting this. - Added
sharestoPost-type.
Thanks to Mike Champion for the pull request. - Added
attachments,updated_time,unread, andunseenfields toMessage-type.
Thanks to S13_Alan for the patch. - Fix for invalid Windows filename.
Thanks to Samuel Gélineau for the patch.
- New feature: you may annotate a method in a class mapped by JsonMapper with
@JsonMappingCompleted. Your method may be private and must take 0 parameters or 1 JsonMapper parameter. This is useful for performing one-time actions after theJsonMapperhas completed its work, e.g. massaging JSON data into other formats. - Bugfix: The
message_tagsfield inPost-type could throw an exception when JsonMapper attempted to map it.
Thanks to Shaya Potter for reporting this.
- Potentially-breaking change: in the event of a Graph API 404 (like fetching an object with an id that doesn't exist, e.g. /XXX)
we now throw the correct FacebookOAuthException instead of FacebookNetworkException.
Thanks to oferiko for the bug report. - Changed all network logging to use the new
com.restfb.HTTPlogger and now default toFINEinstead ofINFOfor normal requests/responses.
This means you must explicitly enable logging to see what goes over the wire.
Thanks to Johno Crawford and Marcel Stoer. - Added a new method to extend an existing Access Token:
See extend Access Token @ Facebook for details.
FacebookClient.obtainExtendedAccessToken(String appId, String appSecret, String accessToken).
Thanks to Chris Petersen for the initial patch. - Added a new method to acquire an Application Access Token:
See application accesstoken @ Facebook for details.
FacebookClient.obtainAppAccessToken(String appId, String appSecret).
Thanks to Chris Petersen for the initial patch. - Added Andrew Liles'
InsightUtils-class, which provides a nice wrapper around querying for Insights data.
Thanks to Andrew Liles. - Changed the signature of
FacebookClient.deleteObject(String object)toFacebookClient.deleteObject(String object, Parameter... parameters)to support parameterized deletion. This is a breaking change if you have a custom implementation of FacebookClient (should not be many of you).
Thanks to Nick Fenwick for the patch. FacebookOAuthExceptionnow includes anerrorCodefield since FB now returns one.
Thanks to connectvg for the bug report.FacebookOAuthExceptionnow includes anhttpStatusCodefield since it's helpful for client application error messaging.
Thanks to mtsahakis for the suggestion.DateUtils.toDateFromLongFormat(String date)now handles the case where FB occasionally returns the number of seconds since the epoch instead of ayyyy-MM-dd'T'HH:mm:ssZstring.
Thanks to raphael.lisboa@gauge.com.br for the bug report.- Added the static method
AccessToken.fromQueryString(String queryString), which encapsulates logic for parsing out Facebook's "standard" access token query strings, e.g. 'access_token=XXX' or 'access_token=XXX&expires=YYY'.
Thanks to egor@technoparkcorp.com for the suggestion. - Can now map Java types to JSON if they have multiple @Facebook annotations for the same value (e.g. User's hometown fields).
Previously the mapper would throw an exception, now it picks one of the fields - it's luck of the draw which one is used.
This behavior may change later, this is a quick workaround to address the issue short-term.
Thanks to petermein for the bug report. - Various changes to classes in
com.restfb.typesto reflect latest Facebook updates.
Thanks to Chris Petersen, Marcel Stoer, Mike Hazelwood, Marco Scavuzzo, Stefan Hauk, Mike Champion, nitinik, egor@technoparkcorp.com, and others.
- Bugfix for
Connectionpage iteration.
Thanks to Takashi Kawachi for the patch.
- Now allow batch requests to specify
nameparameter and fixed a bug where request headers were not being included in requests.
Thanks to jyorke. - Added new
placefield toPosttype.
Thanks to Chris Schilling. - Added new
locationfield toPagetype.
Thanks to Fernando Padilla. - Made several updates to the
educationfield on theUsertype.
Thanks to Marcel Stoer and Silent Film. - Fix for FB's inconsistent and undocumented behavior for returning
likesandcommentsfields inStatusMessage.
Thanks to volkenborn. - Moved to Github (https://github.com/revetkn/restfb) and back to an Ant-based build system for simplicity. RestFB releases will still be pushed to Maven central, but RestFB itself will no longer use Maven.
- The
Connection<T>constructor is now public and the class implementsIterable<List<T>>.
Thanks to kongo09, Andrew Liles, and everyone else who requested this. - Fixed regression: re-added
commentsandlikesfields toStatusMessage(FB docs are incorrect).
Thanks to nstratos and volkenborn for letting me know. - Added
cover_photoandprivacyfields toAlbum.
Thanks to serg472 for the heads-up. - Added
checkinsandphonefields toPage.
Thanks to jaiswal.rahul for the heads-up about thecheckinsfield. - Added an example project which shows how to route
java.util.loggingcalls to Log4j. It's available at http://restfb.com/examples/RestFB%20Log4j%20Example.zip
Thanks to Daniel Longosz for asking about this.
- Fixes a bug introduced in 1.6.5 where facebookClient.delete(...) would throw an NPE.
Thanks to Garret Collins.
-
BREAKING CHANGE:
We are no longer passing around InputStream objects to represent binary files when publishing - they have been replaced by instances of the new
com.restfb.BinaryAttachmenttype. So this method:<T> T FacebookClient.publish(String connection, Class<T> objectType, InputStream inputStream, Parameter... parameters)is now:
<T> T FacebookClient.publish(String connection, Class<T> objectType, BinaryAttachment binaryAttachment, Parameter... parameters)This change was necessary to support correct video uploads (FB now requires a filename with a video extension, e.g. .mov) and the new Batch API. Documentation and usage examples for
com.restfb.BinaryAttachmentare available on http://restfb.com. -
Added support for the new Batch API. The two new methods are:
List<BatchResponse> FacebookClient.executeBatch(BatchRequest... batchRequests) List<BatchResponse> FacebookClient.executeBatch(List<BatchRequest> batchRequests, List<BinaryAttachment> binaryAttachments)
Thanks to everyone who asked for this!
-
Added support for the new video upload API endpoint via https://graph-video.facebook.com and fixed a multipart filename bug that broke video uploads.
Thanks to yylaob@gmail.com for the filename bugfix and saylxxx@gmail.com and everyone else who asked for this! -
All types under com.restfb.types now implement Serializable.
Thanks to everyone who asked for this! -
Fixed a numeric precision bug in
JsonObject.getLong()which caused large numbers to be rounded incorrectly.
Thanks very much to ps@king.com for finding this and providing a patch. -
`DefaultJsonMapper`` can now instantiate types with no-argument constructors that are private, protected, or package-private - you no longer have to expose your constructors if you don't want to.
-
JsonMapper.toJson(Object object, boolean ignoreNullValuedProperties)was added, which enables you to turn a Java object into JSON without including any properties with null values. -
Added
comments,likes,position, andimagesfields toPhototype.
Thanks to Andre Oosthuizen and Grace Win. -
Added
name,tags, andsourcefields toVideoand markedmessageas deprecated.
Thanks to Andre Oosthuizen and Marcel Stoer. -
Added
likesandaccess_tokenfields toPageand deprecatedfan_count.
Thanks to Shashank Agarwal and jspyeatt. -
Added
object_idfield toPost.
Thanks to Grace Win. -
Added
usernamefield toUser.
Thanks to Iwan Gulenko. -
Added
city,state, andcountryfields toCheckin.Place.Location.
Thanks to Thom Nichols. -
Removed
messagesandlikesfields fromStatusMessagebecause they're now connections. Added thetypefield toStatusMessage.
Thanks to volkenborn@yahoo.com.
- Added
applicationandtypefields toPost.
Thanks to nelrib. - Removed
mobilePhoneandaddressfields fromUser.
Thanks to Marcel Stoer. - Added undocumented
propertiesfield toPosttype.
- RestFB now automatically uses the faster read-only endpoints for Graph and Old REST API calls when possible.
Thanks to Dmitry Naumenko for the suggestion. - POTENTIALLY BREAKING CHANGE: Old REST API calls (including FQL with the Graph API) will now throw
FacebookOAuthException instead of FacebookResponseStatusException when error code 190 is encountered.
Thanks to Ofer Fort for the suggestion. - It is now simple to customize how RestFB maps Facebook error responses to FacebookException instances
for both Graph and Old REST API errors by overriding
DefaultFacebookClient.createGraphFacebookExceptionMapper()andBaseFacebookClient.createLegacyFacebookExceptionMapper(), respectively. The default instances returned by both of these methods are now marked protected instead of anonymous classes so you can leverage them if you wish.
Thanks to Alexis Dufrenoy for the suggestion. - Added lots of new fields to
User, e.gsportsandlanguages.
Thanks to Patrick Alberts for the patch. - Added new PageConnection type, useful for mapping partial page types returned by some connections, e.g. "me/music".
Thanks to Patrick Alberts for the patch. - Added undocumented
is_community_pageanddescriptionfields to thePagetype.
Thanks to Ivan Viragine. - Can now customize HttpURLConnection creation in DefaultWebRequestor by overriding openConnection(URL url)
to support custom proxying etc.
Thanks to Matti Haro for the suggestion. - Added new
Insighttype which can be used like this:Connection<Insight> insights = facebookClient.fetchConnection("PAGE_ID/insights", Insight.class);
-
You can now instruct
DefaultJsonMapperhow to handle mapping exceptions, e.g. ignoring them and mapping as null instead of throwing an exception.FacebookClient facebookClient = new DefaultFacebookClient("MY_ACCESS_TOKEN", new DefaultWebRequestor(), new DefaultJsonMapper(new JsonMappingErrorHandler() { public boolean handleMappingError(String unmappableJson, Class<?> targetType, Exception e) { // Here you might log the fact that JSON mapping failed. err.println(format("Uh oh, mapping %s to %s failed...", unmappableJson, targetType)); // Returning true tells the mapper to map this JSON as null and keep going. // Returning false tells the mapper to throw an exception. return true; } } ));
The default behavior is still to throw an exception immediately on mapping errors, this callback interface is your way of saying "I know what I'm doing and want to handle errors myself". Very useful for keeping your app running in production when Facebook changes the API unexpectedly.
Thanks to Igor Kabiljo for the suggestion. -
Added new
quotesandaddressandmobile_phonefields to theUsertype.
Thanks to ne52 for the heads-up about the addition of the quotes field. -
DateUtils.toDateFromMonthYearFormatnow returns null for0000-00instead of0 AD. Not sure why FB gives us 0000-00 instead of null in some situations, e.g. work start date.
- We're now fully Mavenized - you can add RestFB to your Maven project like this:
Many thanks to Kalle Korhonen, and congratulations to him for being the first additional RestFB committer!
<dependency> <groupId>com.restfb</groupId> <artifactId>restfb</artifactId> <version>1.6.2</version> </dependency>
JsonExceptionis now unchecked.- Fix for start and end date handling on the
Eventtype.
Thanks to Jason Peltzer. - @Facebook annotation on accessToken on
Accounttype is now correctly mapped toaccess_token.
Thanks to Scott Aaron. - Added the
categoryfield to theCheckin.Placetype.
Thanks to Mattia Tommasone. LatitudeandLongitudefields onCheckin.Placeare now of typeDoubleinstead ofFloat, thereby supporting the full precision of the data returned by FB instead of truncating to fit correctly in a Float.
-
POTENTIALLY BREAKING CHANGE:
User.getPicture()has been removed. To get the user's picture, simply construct a URL by hand, e.g. http://graph.facebook.com/USER_ID/picture -
Now use
java.util.logginginstead of Log4j - RestFB now has 0 dependencies. -
FacebookException now extends
RuntimeException- you no longer have to catch it if you don't want to.
Thanks to Jeff Schnitzer. -
Removed
containsattribute on@Facebookannotation since it is no longer necessary.
Thanks to Igor Kabiljo for the initial patch. -
Exposed and cleaned up previously-internal RestFB's repackaged JSON.org code in the new com.restfb.json package.
-
You may now tell
JsonMapperto map toJsonObject, which permits you to have total control over result mapping at run time (as opposed to the compile-time-only@Facebookannotation). -
JsonMappernow supports having a Facebook JSON field mapped to multiple@Facebook-annotated Java fields. This addresses the issue of Facebook returning the same field name but differently-structured data in certain situations. See issues 56 and 90 for details.
Thanks to Daniel Winterstein, Igor Kabiljo, Marcel Stoer, Pramod Biligiri, and Tom Schindl for their input. -
Exposed and cleaned up previously-internal RestFB utilities in the new
com.restfb.utilpackage. -
Added new exception package
com.restfb.exceptionand exception types (FacebookOAuthException,FacebookQueryParseException) for simple handling of common Graph API exception types.
Thanks to Jeff Schnitzer. -
Added formal support for Connection paging by URL via
FacebookClient.fetchConnectionPage()and the newConnection.getPreviousPageUrl()/getNextPageUrl(). No more manual offset calculation required.Example:
Connection<Post> myFeed = facebookClient.fetchConnection("me/feed", Post.class); if(myFeed.hasNext()) { Connection<Post> myFeedPage2 = facebookClient.fetchConnectionPage(myFeed.getNextPageUrl(), Post.class); // ... }
Thanks to Jakub Danilewicz.
-
Added
FacebookClient.convertSessionKeysToAccessTokens()method.
Thanks to Scott Hernandez and Mattia Tommasone. -
Fixed issue where
User.birthdaycauses mapping to fail if "show only month & date" is set on FB.
Thanks to Kalle Korhonen. -
Old REST API now always uses the HTTPS endpoint.
Thanks to Christopher Oestlund. -
Added
embed_html,picture,icon,commentstoVideotype.
Thanks to Fahd Akbar and Chris Pruett. -
Added
Accounttype to support impersonation feature.
Thanks to jovanovich. -
Fixed error-handling issues: 1) where HTTP 400 error code would throw an incorrect exception and 2) where error response JSON would not get correctly read in this and other error situations.
Thanks to Igor Kabiljo, ovonick, and everyone else who reported this. -
Performance enhancement:
ReflectionUtilsnow caches@Facebookfield information so we never have to reflect more than once.
Thanks to Igor Kabiljo for the patch. -
Added Checkin type.
Thanks to everyone else who requested this and Colin Britton for the checkin code snippet. -
Added StatusMessage type.
-
Added middle_name field to User type.
Thanks to Fehmican Saglam.
- Post comment type now handles case where FB returns an empty array instead of an object type.
Thanks to Pipo, CR, S13_Alan, Igor Kabiljo, and Jakub Danilewicz.
NamedFacebookTypenow handles situation where FB returns, for example, "hometown":"Beograd", instead of the expected "hometown":{"id":123,"name":"Belgrade, Serbia"}
Thanks to Igor Kabiljo for the bug report and suggested fix.- Mapper now gracefully handles situation where Facebook returns the not-JSON string "false" and instead of {}.
Thanks to Igor Kabiljo for the bug report and suggested fix. - The Post type's comments field changed on the Facebook side to include a "count" field.
Thanks to Jakub Danilewicz for the bug report and suggested fix.
Thanks to Igor Kabiljo for the suggested fix. - Fixed infinite recursion bug that was triggerable in exceptional situations in ReflectionUtils.toString().
Thanks to Igor Kabiljo for the bug report and suggested fix. - Mapper fix for situations where Facebook returns the string "null" instead of an empty object or nothing.
Thanks to Igor Kabiljo for the bug report. - Timezone field in User is now a Double to account for timezones with fractional offsets.
Thanks to Sam for the bug report. - Changed Parameter's date marshaling to produce Facebook Date strings in a zero-based hour format.
Thanks to Jakub Danilewicz for the bug report and suggested fix. Connection<?>hasgetNext()andgetPrevious()methods that return the next/previous URLs returned by Facebook.- All fields in
BaseFacebookClient,DefaultFacebookClient, andDefaultLegacyFacebookClientare protected for easier subclassing. All Facebook API URLs are now overridable via protected accessor methods.
Thanks to Kalle Korhonen and bijuphilip0 for the enhancement requests. - Added locale field to User.
- No longer require an access token for the Graph API (now have a default constructor for
DefaultFacebookClient).
Thanks to Yoav Shapira for the enhancement request. - Facebook changed the data in the
Photo Tagobject - updated to reflect that.
Thanks to Max for reporting. - Facebook added fields to the
Userobject - updated to reflect that.
Thanks to fellahst and ndimiduk for reporting. - HTTP GET operations executed by
DefaultWebRequestornow usehttpUrlConnection.setUseCaches(false).
Thanks to Jumpa for reporting this. - Special check to only URL-encode access token if it's not already URL-encoded.
- OAuth support broke in
DefaultLegacyFacebookClientbecause Facebook changed thetokenparam toaccess_token.
Thanks to Antonio Casula for the initial problem report.
- Added support for the new Facebook Graph API
- Old REST API now has support for the new OAuth authentication tokens
- Fix for multiqueries with empty resultsets throwing a JSON mapping exception
WebRequestornow supports POSTs which perform file uploading and GETs- The
com.restfb.jsonundocumented package is now gone. Theorg.jsoncode is now package-private inside ofcom.restfb - Many small bugfixes and enhancements
- Enhanced examples and documentation
Thanks to Ofer Fort, Ryan Wilson, and Alex Launi for their input.
- Added support for Java -> JSON mapping to support more complex API calls like stream.publish.
Thanks to Alex Launi and biz@layes.com for their input.
- In response to recent FB changes, JSON mapper now coerces empty JSON arrays to empty Java Strings if you're trying to map to a String field.
Thanks to Antonello Naccarato for reporting this!
- Fixed bug related to mapping JSON null to Java types
- Library source is now included in the JAR for easy browsing in your IDE
- Formal support for
fql.multiqueryAPI call - Minor JSON mapping fixes and error message improvements
- Updated website with
fql.multiquerydocumentation and explicit mention of non-support of session key acquisition
- Initial release