Changes to Linkedin API

LinkedIn
Dear LinkedIn developer,
Today we announced some significant changes to our Developer Program that will likely affect your LinkedIn API access.In an effort to provide the most value to our members, developers and to LinkedIn, we’re restricting our open APIs and providing further clarity about the specific use cases we’ll support. Starting on May 12, 2015, the following uses will be supported:

  • Allowing members to represent their professional identity via their LinkedIn profile using our Profile API.
  • Enabling members to post certifications directly to their LinkedIn profile with our Add to Profile tools.
  • Enabling members to share professional content to their LinkedIn network from across the web leveraging our Share API.
  • Enabling companies to share professional content to LinkedIn with our Company API.

By May 12, all new and existing applications must focus on at least one of the use cases above and adhere to our updated API Terms of Use in order to access our open APIs. All other APIs will require developers to become a member of one of our partnership programs. For more information about these programs and to apply, go here.

The developer community continues to be a priority for LinkedIn. We want to continue providing tools needed to create great products around the use cases we support. So today, we’re releasing a new Mobile SDK for Androidthat allows developers to build applications that make it easy for members to log in with their LinkedIn credentials and deep link to view member profiles within the LinkedIn app.

Have questions? You can learn more about these changes on our blog post. A more technical breakdown of exactly what’s changing at the API level can be found in our transition guide and our updated API Terms of Use. We encourage you to review both documents to ensure your applications are supported and to ensure a smooth transition.

Thanks for being part of our developer community,
The LinkedIn Platform Team

Categories: Uncategorized

Using Html5 geolocation to find someone via their email

Here’s a tool that you can use to track the location (lat/lon) of someone via their email account:

http://howto.findpeoplefree.co.uk

Categories: Uncategorized

Offline Adverts.com – an advertising solution that works even when offline.

offlinead

Offline Adverts.com is an advertising platform for apps that is designed to work specifically when the user’s device is offline, and not connected to the Internet. This is where most ad platforms just show an empty space, this backup solution allows you to fill that unused ad space with a paid ad.

As an advertiser, it lets you gain brand exposure, even for a fraction of the cost of the mainstream ad networks.

Want to find out more? visit – OfflineAdverts.com

Categories: Uncategorized

Open Native Google Maps App from Phonegap / Cordova (iOS)

If you want to show a map in your Phonegap app, you can always use the google maps API to show a map, or even use the in-app browser to link out to a google map page. But nothing quite matches the Google maps native app, with it’s funky satnav-like features, and slick interface

Thing is, the Google Maps App isn’t installed by default, so in this case, I’m failing-over to a in-App Browser version. This code is iOS only, but anyone wishing to provide a port to Android will be rewarded* (Yes, I’d pay for the port)

– (void) openGoogleMaps:(CDVInvokedUrlCommand *)command

{

NSLog(@”openGoogleMaps”);

NSString* callbackId = [command callbackId];

NSArray* arguments = [command arguments];

NSString* map = [arguments objectAtIndex:0];

CDVPluginResult* result;

NSURL *testURL = [NSURL URLWithString:@”comgooglemaps://”];

if ([[UIApplication sharedApplication] canOpenURL:testURL]) {

NSString *directionsRequest = [NSString stringWithFormat:@”%@%@”,

@”comgooglemaps://?” ,

map];

NSURL *directionsURL = [NSURL URLWithString:directionsRequest];

[[UIApplication sharedApplication] openURL:directionsURL];

result = [CDVPluginResult

resultWithStatus:CDVCommandStatus_OK

messageAsBool:true];

} else {

NSLog(@”Can’t use comgooglemaps:// on this device.”);

result = [CDVPluginResult

resultWithStatus:CDVCommandStatus_OK

messageAsBool:false];

}

[self success:result callbackId:callbackId];

}

Then, this is called from Javascript as follows:

function openGoogleMaps(route)

{

console.log(“openGoogleMaps”);

cordova.exec(function(data)

{

console.log(“Returned from google maps:” + data);

if (!data)

{

// Failed to find native app.

var strUrl = “http://maps.google.com/maps?”;

strUrl += route;

var ref = window.open(strUrl, “_blank”, “location=yes”);

}

}, function(data)

{

console.log(“Plugin failure”);

}, ‘StatusBar’, ‘openGoogleMaps’, [route]);

}

Categories: Uncategorized

Upload a file to Amazon S3 using C#

This code example is probably online a million times, but just to include it again here;

string existingBucketName = “mybucket”;
string filePath = @”c:\users\you\desktop\file.png”;
Amazon.Util.ProfileManager.RegisterProfile(“test”, “xxxxx”,”XXXX”);
AWSCredentials credentials = new StoredProfileAWSCredentials(“test”);
IAmazonS3 s3Client = new AmazonS3Client(credentials, RegionEndpoint.EUWest1);
TransferUtility fileTransferUtility = new TransferUtility(s3Client);
var uploadRequest = new TransferUtilityUploadRequest
{

FilePath = filePath,
BucketName = existingBucketName,
CannedACL = S3CannedACL.PublicRead
};
fileTransferUtility.Upload(uploadRequest);

Categories: Uncategorized

Capture hi-res image from iTunes using C#

This is a quick demo of how to use the iTunes API to extract the hi-res icon of any iOS app;

WebClient wc = new WebClient();
string strUrl = @”http://itunes.apple.com/search?term=” + HttpUtility.UrlEncode(tbSearch.Text) + “&entity=iPadSoftware”;
string strHtml = wc.DownloadString(strUrl);
const string strArtRegex = “artworkUrl100.:\”(.*?)\””;
Match mArt = Regex.Match(strHtml, strArtRegex);
string Url = mArt.Groups[1].Value;
imgArtwork.Src = Url;

This assumes a user interface somewhat like this:

<asp:TextBox runat=”server” ID=”tbSearch”></asp:TextBox>
<asp:Button runat=”server” ID=”btnSearch” OnClick=”btnSearchClick” Text=”Search”/>
<br/>
<img id=”imgArtwork” runat=”server”/>

Hope this helps someone.

Categories: Uncategorized

Favourite Tweets using C# Tweetsharp

If you want to make noise on twitter, favouriting people’s tweets does draw a little attention, so I decided to try to do this automatically, to see if I could build followers.- Here is the code I used in C# (authentication details removed) – you need a reference to TweetSharp

var service = new TwitterService(“########”, “######”);
service.AuthenticateWith(“###”, “#####”);
TwitterSearchResult res = service.Search(new SearchOptions { Q = args[0], Count = 100});
IEnumerable<TwitterStatus> status = res.Statuses;
foreach (var tweet in status)
{
Console.WriteLine(tweet.Text);
service.FavoriteTweet(new FavoriteTweetOptions{Id = tweet.Id});
}

It takes a command line argument, which it uses as a search term, so you can favourite tweets that are relevant.

And, hey if you want to follow me, please go to: https://twitter.com/webtropy

Categories: Uncategorized

2014 in review

Categories: Uncategorized

Read extended properties of a file in C#

You need to make a reference to the COM library “Microsoft Shell controls and automation”

[STAThread]
public static void Main(string[] args)
{
List<string> arrHeaders = new List<string>();

Shell32.Shell shell = new Shell32.Shell();
var strFileName = @”C:\Users\Fiach\Desktop\sample_iTunes.mov”;
Shell32.Folder objFolder = shell.NameSpace(System.IO.Path.GetDirectoryName(strFileName));
Shell32.FolderItem folderItem = objFolder.ParseName(System.IO.Path.GetFileName(strFileName));

for (int i = 0; i < short.MaxValue; i++)
{
string header = objFolder.GetDetailsOf(null, i);
if (String.IsNullOrEmpty(header))
break;
arrHeaders.Add(header);
}

for (int i = 0; i < arrHeaders.Count; i++)
{
Console.WriteLine(“{0}\t{1}: {2}”, i, arrHeaders[i], objFolder.GetDetailsOf(folderItem, i));
}
Console.ReadLine();
}

Categories: Uncategorized

HTTP POST using PHP

$url = ‘https://posttestserver.com/post.php&#8217;;
$data = array(‘key1’ => ‘value1’, ‘key2’ => ‘value2’);

// use key ‘http’ even if you send the request to https://&#8230;
$options = array(
‘http’ => array(
‘header’ => “Content-type: application/x-www-form-urlencoded\r\n”,
‘method’ => ‘POST’,
‘content’ => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo($result);

—- And the cool thing is that posttestserver.com lets you see what you posted to it. cool service!

Categories: Uncategorized