Skip to content

Releases: abjerner/Skybrud.Social

Skybrud.Social.Core v1.0.0-beta1

06 Mar 14:25
Compare
Choose a tag to compare
Pre-release

So, beta you say?

As of v1.0, Skybrud.Social will now be released as a Skybrud.Social.Core package rather than just Skybrud.Social as before. The core package will only contain common functionality, while the implementations for each service will be released as individual packages. This should hopefully make development easier in my end, and updating easier in your end ;)

The old Skybrud.Social NuGet package will soon be updated, but will then just consist of an empty DLL, but with package dependencies for the services currently supported in v0.9.x of Skybrud.Social.

While v1.0 is still in beta, it is recommended to use v0.9.4.1 of the old Skybrud.Social package instead.

Skybrud.Social v0.9.4.1

13 Aug 22:41
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.4.1

This release addresses some of the changes in the latest version of the Facebook Graph API. In v2.4 of the Graph API, fewer fields are returned by default. To address this, most methods now support specifying which fields that should be returned by the Graph API.

There are still some methods left that don't yet support this. Those will be addressed in v0.9.4.2, which probably will be released over the weekend.

Skybrud.Social v0.9.4

12 Aug 19:11
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.4

This release has mainly focused on adding new logic, or improving existing logic without creating any breaking changes.

There is however a breaking change in the Facebook logic (the FacebookGender enum class) since I misspelled a property.

Facebook
  • Parsing a user where gender isn't specified will no longer throw an exception (see #30 and 6100a9e).
  • Fixed wrong property name (typo) in the FacebookGender enum class. The property Make has now renamed to Male. This is a breaking change for anyone using this enum (see f90fc2f).
Instagram
  • For endpoints/methods in the Instagram API that doesn't require a user context, a client ID can be specified instead of an access token. A static CreateFromClientId method has now been added to the InstagramService to better support this (see 3ce8d73).
  • Implemented the Search method in the Tags endpoint as suggested by @Fedrch in #36 (see e84cb79).
  • Implemented the GetUserFeed method in the Users endpoint for getting the feed of the authenticated user (see 433dd0e).
Twitter
  • Added Retweet and DestroyStatusMessage methods to the Statuses endpoint (see 841c7f0).
  • Added support for the Favorites and Lists endpoints (see ed12855).
Google
  • Google allows developers to specify a server key as an alternative to access tokens. The GoogleService and GoogleOAuthClient classes have now been updated to support this (see bb27a3c).
  • As a common thing for the Google, Analytics and YouTube implementations, the scopes are now declared in static classes - eg. you should now use GoogleScopes.Email instead of GoogleScope.Email, and AnalyticsScopes.Readonly instead of AnalyticsScope.Readonly. The old way of accessing a scope (eg. GoogleScope.Email) has now been marked as obsolete, and will be removed entirely for v1.0 of Skybrud.Social (see 88917c9).
Analytics
  • To have a normalized structure for the various implementations in Skybrud.Social, the Analytics implementation has now also been updated to return classes representing the entire response. This meaning that earlier a call to the API would return a class representing just the response body (JSON data) without any information about the actual HTTP request - eg. headers returned by the server.

    To avoid breaking changes, the old methods for calling the API can still be used from the Analytics endpoint as before, but have been marked as obsolete. The new methods have been separated into individual Management and Data endpoints. The methods and classes now marked as obsolete will be removed entirely for v1.0 of Skybrud.Social.
YouTube
  • Added a Tags property to the YouTubeVideoSnippet class so the tags are now properly exposed (see 14913e5).
Other
  • It is a plan for the future (hopefully v1.0) to switch to Newtonsoft.Json instead of JavaScriptSerializer currently being used internally in Skybrud.Social. So to better support this move, a bunch of extension methods for JObject and JArray have now been added to the project (see 48ad1ee).

Skybrud.Social v0.9.3

28 May 20:20
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.3

By each release I will improve the (amount of) XML documentation throughout the project, which again should give you better description when using intellisense in Visual Studio.

Facebook
  • Added Source property to the FacebookPost and FacebookFeedEntry classes (see #26 reported by @seanhak - 77bc570).
  • Added support for localization in API requests (see #27 reported by @seanhak - 5f52b29).
  • The feed endpoint didn't really work in earlier releases. This has now been fixed :D (see 8cd0358).
  • Fixed a bug in the FacebookShares class (see 91aa0ab).

Skybrud.Social v0.9.2

12 Apr 16:51
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.2

Twitter
  • TwitterResponse and sub classes now expose rate limiting information (see ff45022).
GitHub
  • Introduced generic GitHubResponse<T> class. Response classes have been updated to extend this class (see 473475c, b755e91 and 29abacb).
Instagram
  • Introduced logic for getting a list of media liked by the authenticated user - thanks to @rasmusfjord (see 82f14e1 and b4cbfa5).
Other
  • Both the NuGet package and the ZIP file released here on GitHub now also contains Skybrud.Social.xml - a file with the XML documentation of the DLL.
  • Some of the validation in the various ParseResponse methods have now been normalized, so they will throw an exception of the type ArgumentNullExcetion if the specified response is null. Earlier some of the methods would just return null. This is probably most used internally in SKybrud.Social, and therefore not likely to affect your usage of this package (see 46a4aa2, 6ba65fc and 0ddff92).

Skybrud.Social v0.9.1.1

22 Feb 23:11
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.1.1

Instagram
  • Fixed an issue in the Instagram OAuth authentication (introduced in 0.9.1).

Skybrud.Social v0.9.1

22 Feb 22:04
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.1

Instagram
  • Remaining endpoint methods in the Instagram implementation will now return a representation of the entire response. As an example:

    InstagramRecentMediaResponse response = service.Users.GetRecentMedia(userId);
    
    foreach (InstagramMedia media in response.Data) {
    
    }

    should now be replaced by

    InstagramRecentMediaResponse response = service.Users.GetRecentMedia(userId);
    
    foreach (InstagramMedia media in response.Body.Data) {
    
    }
  • Due to the changes mentioned above (and earlier changes related to the response classes), it is now possible to get information about rate limiting - eg.:

    InstagramRecentMediaResponse response = service.Users.GetRecentMedia(userId);
    
    int limit = response.RateLimiting.Limit;
    
    int remaining = response.RateLimiting.Remaining;
YouTube
  • The YouTubeEndpoint class priviously located in the Skybrud.Social.Google.YouTube namespace has now been moved to the Skybrud.Social.Google.YouTube.Endpoints namespaces. All methods in the class has been moved into four separate endpoint classes:

    • YouTubeChannelsEndpoint
    • YouTubePlaylistsEndpoint
    • YouTubePlaylistItemsEndpoint
    • YouTubeVideosEndpoint

    A method in the channels endpoint could now be called as:

    YouTubeChannelListResponse response = service.YouTube.Channels.GetChannels(...);
  • Similar to Instagram, all endpoint methods will now return an object representing the entire response. For a list response, each item can now be accessed as:

    YouTubeVideoListResponse response = service.YouTube.Videos.GetVideos(new YouTubeVideoListOptions {
        Ids = new [] {"dQw4w9WgXcQ"}
    });
    
    foreach (YouTubeVideo video in response.Body.Items) {
    
    }
  • Lots of new features have been added, which will soon be covered in the documentation ;)

Skybrud.Social v0.9.0

13 Feb 16:58
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.9.0

Since it has been more than a year since v0.1.2, there is a lot of (breaking) changes in v0.9.0, and it will take too long time to address them here. I'm working on a new website for Skybrud.Social, that also will contain a long awaited and improved documentation, that will address some of these changes, or at least contain samples on how to use the most recent code.

The changes since v0.9.0-alpha mostly consist of improvements to the Twitter implementation, which also has lead to some breaking changes. Here is a small summary of what was changed.

Twitter
  • All methods in the various Twitter endpoints now return an object representing the entire response, rather than just the response body. Eg. the GetStatusMessage will now return an instance of TwitterStatusMessageResponse rather than TwitterStatusMessage as before.
  • The structure of the TwitterReverseGeocodeResponse class (which was introduced in v0.9.0-alpha) has now been updated to more closely follow the names and structure of the JSON returned by the Twitter API.
  • The TwitterMethodAttribute class was removed. This class was probably only used internally, and used for documentation purposes.
  • Until now the TwitterStatusMessage class has had a property named Contributors. The contributors property is still present in the returned JSON, but is has been empty in all cases that I have encountered, and Twitter has very limited documentation on the property. It has therefore been removed for now.
  • As of v0.9.0-alpha the old TwitterException was renamed to TwitterDeprecatedException since a new and improved TwitterException was added instead. The remaining code still using TwitterDeprecatedException has now been removed, and the class has therefore been removed as well.
  • The GetTweet methods in the Statuses endpoint has now been removed since they we're really just aliases of the GetStatusMessage methods.

Skybrud.Social v0.9.0-alpha1

07 Feb 21:42
Compare
Choose a tag to compare
Pre-release

» Install via NuGet

Changelog for v0.9.0-alpha1

Skybrud.Social 0.9.0-alpha1 is - as suggested by it's name - is an alpha release. This means that things are not as heavily tested, and that there therefore is a higher risk of experiencing bugs. If you encounter any bugs, or simply things you feel should be different, please make sure to create an issue. That would help me a lot.

A lot has changed with this release, so I'm not going to list all breaking changes here. However one of the most signicant changes is what is returned by the calls to the various APIs.

Raw endpoints

Skybrud.Social has a lot of raw endpoints for the various services. These endpoint deal with the raw communication, and are probably not used by much users. In earlier releases, a call with a method in a raw endpoint would typically return a string representing the response body. Some services/APIs specify extra information in the response headers. Some return an empty response body if an error occurs, but only set a HTTP status code in the response informing about the error. So since it wasn't possible to gather these information from the response body, methods in the raw endpoints will now return an instance of SocialHttpResponse instead. This class will have properties like StatusCode returning an instance of HttpStatusCode, and Body returning the response body as a string. Not all methods have been updated to return an instance of SocialHttpResponse, but this will be fixed in v1.0 or before.

Object-oriented endpoint

Some of the normal endpoints (solid or object-oriented endpoints if you will) have also been updated. Where a call for information about a given Twitter user previously would return an instance of TwitterUser representing the response body, that same method will now return an instance of TwitterUserResponse more widely representing the entire response. The Body property will then return the TwitterUser object parsed from the response body. The Response property will in a similar way return the underlying instance of SocialHttpResponse.

This release also features a lot of other fixes and additions. But this being an alpha release, they will be left somewhat undocumented for now. Along with my work towards v1.0, I'm also taking the time to finally writing some proper documentation, so there will be plenty of examples on how to use and utilize Skybrud.Social v1.0. An optimistic plan is to have v1.0 released in one of the upcoming weeks.

Facebook

In earlier versions, all methods in the Facebook API were exposed through the Methods endpoint. As of this release, methods are now located in a relevant endpoint - eg. a Posts endpoint for dealing with posts, and a Pages endpoint for dealing with pages.

Skybrud.Social v0.1.2

19 Jan 23:14
Compare
Choose a tag to compare

» Install via NuGet

Changelog for v0.1.2

Google Analytics
  • Skybrud.Social 0.1.2 primarily focuses on improved support for Google Analytics - including sorting and filtering when fetching data from a profile.
  • Google has introduced a Realtime API for accessing live data from Google Analytics. Skybrud.Social 0.1.2 now also has support for this API, and live data can noew be retrieved in a similar manner to how regular data is retrieved. The Realtime API is however still in closed beta, so developers must request access by Google in order to use it.
  • In v0.1.1 metrics and dimensions were defined by string constants. To allow for some more powerful logic, these constants have now been turned into instances of AnalyticsMetric and AnalyticsDimension respectively. The two classes now use operator overloading to play nicely with strings, but may still break your existing code in some scenarios if you're using the string constants.
Facebook
  • Version 0.1.0 introduced the class FacebookOAuthClient to replace FacebookApplication. However the GetAppAccessToken method was still only available in FacebookApplication. The method is now also been added to FacebookOAuthClient, which is the recommended way to use the method from now on. The method is still available in FacebookApplication, but the entire class is marked as deprecated.