Announcement Announcement Module
Collapse
No announcement yet.
Facebook July 2013 Breaking Changes and Spring Social Facebook 1.0.3 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Facebook July 2013 Breaking Changes and Spring Social Facebook 1.0.3

    Earlier this week I made Spring Social Facebook 1.0.3.BUILD-SNAPSHOT available in SpringSource's snapshot repository (http://repo.springsource.org/snapshot/). The changes in that build were primarily aimed at preparing Spring Social Facebook for the upcoming breaking changes in Facebook's API to take effect on July 10th.

    Today I have pushed another build of Spring Social Facebook 1.0.3.BUILD-SNAPSHOT to enable a few small tweaks to the API binding and fix a couple of bugs. The pertinent section of the changelog is at the end of this forum post.

    It'd be greatly appreciated if the Spring Social community could try this build out and let me know if you encounter any problems. Note that, as the changelog indicates, you must change your application settings at Facebook, enabling the July 2013 Breaking Changes, in order for this build to work.

    I intend to push this build to GA next week, Wednesday, June 19. Any feedback I can get prior to then will be helpful in ensuring the quality of this release and making sure that Spring Social Facebook keeps working after the July 10 API change.



    Spring Social Facebook 1.0.3 (June 19, 2013)
    ============================================
    Compatibility notes:
    This release includes changes to enable Spring Social Facebook to work
    after the July 2013 Breaking Changes. In order for this version of Spring
    Social Facebook to work prior to July 10, 2013, you'll need to configure
    your application at Facebook to enable the July 2013 Breaking Changes.
    Within Facebook's application configuration, go to "Settings->Advanced"
    and click the "Enabled" radio button next to "July 2013 Breaking Changes".

    Improvements
    * Support July 2013 Breaking Changes in Facebook's Graph API. (SOCIALFB-116)
    * Add several missing properties to Page object. (SOCIALFB-122)
    * Change FriendOperations.getFriendProfiles() to return all friends.
    (SOCIALFB-105)

    Bug Fixes
    * Add FRIENDS constant to Privacy enum. (SOCIALFB-108)
    * Make Reference, WorkEntry, and EducationEntry serializable so that
    FacebookProfile will be serializable. (SOCIALFB-111)

  • #2
    I just migrated to Spring Social * 1.0.3.BUILD-SNAPSHOT, including spring-social-facebook-1.0.3.BUILD-20130614.201112-7

    I first tested with Facebook migrations still disabled, then with Facebook migrations enabled. That is, first I still had disabled the following migrations:
    • Stream post URL security
    • Events Timezone
    • July 2013 Breaking Changes
    • Local Currency Payments Breaking Changes
    Then I activated those migrations under https://developers.facebook.com/apps/ -> [my app-to-be-migrated] -> Edit App -> Advanced -> Migrations -> everything now set to "Enabled".

    I tested this migration with both my local development server and with my remote production server hosted in the cloud.

    From what Spring Social provides, my app uses
    • Facebook OAuth authenication
    • FriendTemplate.getFriends()
    • UserTemplate.getUserProfile(String facebookId)
    • LikeTemplate.getPagesLiked(String userId)
    • FacebookTemplate.fetchConnections(String objectId, String connectionType, Class<T> type, String... fields) (used in my app for fetching all-the-likes-of-a-user-including-the-date-since-this-user-likes-this-page)

    After migration, the parts of my pom.xml relevant to this migration look like this:

    Code:
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    
    ...
    	<repositories>
    		<repository>
    			<id>org.springframework.maven.snapshot</id>
    			<name>Spring Maven Snapshot Repository</name>
    			<url>http://repo.springsource.org/snapshot/</url>
    		</repository>
    	</repositories>
    ...
    	<properties>
    		<java-version>1.7</java-version>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
    		<spring-social-core-version>1.0.3.BUILD-SNAPSHOT</spring-social-core-version>
    		<spring-social-web-version>1.0.3.BUILD-SNAPSHOT</spring-social-web-version>
    		<spring-social-facebook-version>1.0.3.BUILD-SNAPSHOT</spring-social-facebook-version>
    		<spring-social-facebook-web-version>1.0.3.BUILD-SNAPSHOT</spring-social-facebook-web-version>
    ...
    	</properties>
    
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.social</groupId>
    			<artifactId>spring-social-core</artifactId>
    			<version>${spring-social-core-version}</version>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.social</groupId>
    			<artifactId>spring-social-web</artifactId>
    			<version>${spring-social-web-version}</version>
    		</dependency>		
    		<dependency>
    			<groupId>org.springframework.social</groupId>
    			<artifactId>spring-social-facebook</artifactId>
    			<version>${spring-social-facebook-version}</version>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.social</groupId>
    			<artifactId>spring-social-facebook-web</artifactId>
    			<version>${spring-social-facebook-web-version}</version>
    		</dependency>
    ...
    	</dependencies>
    ...
    </project>
    Using Spring Social * 1.0.3.BUILD-SNAPSHOT works flawlessly in all scenarios described (it works before and after enabling migration on Facebook's side under https://developers.facebook.com/apps/. It works on both my local development server and remote production server).

    Additionally, as announced to have been improved (SOCIALFB-105), FriendOperations.getFriendProfiles() also now returns all friends on my side.

    Habuma, thank you for responding so quickly to Facebook's July 2013 breaking changes! I now feel convinced that my website no longer is affected negatively by them.

    Comment


    • #3
      by the way:
      This thread here mentions http://repo.springsource.org/snapshot/ as the snapshot repository, while the current Spring Social documentation mentions http://maven.springframework.org/snapshot . I'm not sure if both are identical or either one is deprecated.

      Comment


      • #4
        Eduard: Thanks for finding that. The "maven." repo doesn't even exist, so that's clearly wrong. I'll fix that asap.

        Comment


        • #5
          Is this also fixed in 1.1.0? I'm using 1.1.0.M2. Do I need to move to a snapshot build of 1.1.0?

          Comment


          • #6
            Yes, the July 2013 breaking changes fixes are also applied in the latest snapshot builds of 1.1.0.

            Comment


            • #7
              Hi

              I had just updated to Spring Social Facebook 1.0.3.RELEASE and I found the "shares" property from "Post" object have dissapeared. Is it because the breaking changes? I can't find any reference or document in Facebook about this change.
              My application used the getSharesCount() method which is now unavailable. Is it will no longer available anymore?

              Thanks in advanced

              Comment


              • #8
                Which version of Spring Social Facebook did you upgrade from? I just took at look at both 1.0.2.RELEASE and 1.0.1.RELEASE and confirmed that getSharesCount() is not on the Post object in either of those releases. As I recall, getSharesCount() is *only* available in Spring Social Facebook 1.1.0 builds (milestones and snapshots). So if you went from 1.1.0.M2 to 1.0.3.RELEASE, you actually took a step backward.

                Comment

                Working...
                X