Releases: abjerner/Skybrud.Social
Skybrud.Social.Core v1.0.0-beta1
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
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
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.
- 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 propertyMake
has now renamed toMale
. This is a breaking change for anyone using this enum (see f90fc2f).
- 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 theInstagramService
to better support this (see 3ce8d73). - Implemented the
Search
method in theTags
endpoint as suggested by @Fedrch in #36 (see e84cb79). - Implemented the
GetUserFeed
method in theUsers
endpoint for getting the feed of the authenticated user (see 433dd0e).
- Added
Retweet
andDestroyStatusMessage
methods to theStatuses
endpoint (see 841c7f0). - Added support for the
Favorites
andLists
endpoints (see ed12855).
- Google allows developers to specify a server key as an alternative to access tokens. The
GoogleService
andGoogleOAuthClient
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 ofGoogleScope.Email
, andAnalyticsScopes.Readonly
instead ofAnalyticsScope.Readonly
. The old way of accessing a scope (eg.GoogleScope.Email
) has now been marked as obsolete, and will be removed entirely forv1.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 theAnalytics
endpoint as before, but have been marked as obsolete. The new methods have been separated into individualManagement
andData
endpoints. The methods and classes now marked as obsolete will be removed entirely forv1.0
of Skybrud.Social.
YouTube
- Added a
Tags
property to theYouTubeVideoSnippet
class so the tags are now properly exposed (see 14913e5).
Other
- It is a plan for the future (hopefully
v1.0
) to switch toNewtonsoft.Json
instead ofJavaScriptSerializer
currently being used internally in Skybrud.Social. So to better support this move, a bunch of extension methods forJObject
andJArray
have now been added to the project (see 48ad1ee).
Skybrud.Social v0.9.3
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.
- Added
Source
property to theFacebookPost
andFacebookFeedEntry
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
Changelog for v0.9.2
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).
- 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 typeArgumentNullExcetion
if the specified response isnull
. Earlier some of the methods would just returnnull
. 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
Changelog for v0.9.1.1
- Fixed an issue in the Instagram OAuth authentication (introduced in 0.9.1).
Skybrud.Social v0.9.1
Changelog for v0.9.1
-
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 theSkybrud.Social.Google.YouTube
namespace has now been moved to theSkybrud.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
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.
- 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 ofTwitterStatusMessageResponse
rather thanTwitterStatusMessage
as before. - The structure of the
TwitterReverseGeocodeResponse
class (which was introduced inv0.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 namedContributors
. Thecontributors
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 oldTwitterException
was renamed toTwitterDeprecatedException
since a new and improvedTwitterException
was added instead. The remaining code still usingTwitterDeprecatedException
has now been removed, and the class has therefore been removed as well. - The
GetTweet
methods in theStatuses
endpoint has now been removed since they we're really just aliases of theGetStatusMessage
methods.
Skybrud.Social v0.9.0-alpha1
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.
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
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
andAnalyticsDimension
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.
- Version 0.1.0 introduced the class
FacebookOAuthClient
to replaceFacebookApplication
. However theGetAppAccessToken
method was still only available inFacebookApplication
. The method is now also been added toFacebookOAuthClient
, which is the recommended way to use the method from now on. The method is still available inFacebookApplication
, but the entire class is marked as deprecated.