Amit Battan
Amit Battan

Reputation: 3018

Facebook graph API : audio share

Can I share audio using facebook graphic API

I have tried this solution ios Facebook Graph API - post Audio file , but it doesn't work as expected

What I tried is to share audio link http://bit.ly/Ok4ZX6 but show it on facebook like a normal link not with embedded player https://i.sstatic.net/Ld67c.png

Edit

Code I have use :

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:4];
[params setObject:text forKey:@"message"];
[params setObject:title forKey:@"name"];
[params setObject:fileUrl forKey:@"source"];
[facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];

Also used this code too :

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:4];
NSString *attachment = [NSString stringWithFormat:@"{'media': [{'type': 'mp3', 'src': '%@', 'title': '%@'}], 'messgae': 'Messgae Messgae Messgae', 'name': 'Name Name Name', 'href': '%@'}",amazon_link, title, link];
[params setObject:attachment forKey:@"attachment"];
[params setObject:text forKey:@"message"];
[params setObject:@"stream.publish" forKey:@"method"];
[facebook requestWithParams:params andDelegate:self];

Upvotes: 5

Views: 2106

Answers (3)

kalyani puvvada
kalyani puvvada

Reputation: 496

Try like this.. Its working for me..

NSMutableDictionary *variables=[[NSMutableDictionary alloc]init];

//Posting audio file
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Dookudu" ofType:@"mp3"];
FbGraphFile *file=[[FbGraphFile alloc]initWithData:[NSData dataWithContentsOfFile:filePath]];
[variables setObject:file forKey:@"file"];

FbGraphResponse *response=[fbgraph doGraphPost:@"me/videos" withPostVars:variables];
NSLog(@"response %@",response.htmlResponse);

Upvotes: 0

Tom Waddington
Tom Waddington

Reputation: 1956

Soundcloud use og:video tags to show the embedded player. The video tags accept SWF files, so it's possible to load up an interactive audio player widget. Try using the OG Debugger to see the tags.

Currently, this seems like the only strategy to show a player when content is shared.

Upvotes: 0

Jonathan
Jonathan

Reputation: 3034

What solution from that link did you try? Post your own code. I also noticed that your audio link doesn't work, atleast not for me.

I think the correct way is to use the "source" field in the graph api, not "link".

This is a good page on the developer reference: http://developers.facebook.com/docs/reference/api/post/


To upload a video using the graph API you can do this. You also need to be authorized to the publish_stream permission.

NSString * file = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"];
NSData * video = [NSData dataWithContentsOfFile:file];
NSMutableDictionary * dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
         @"title", @"title",
         @"description", @"description",
         video, @"video.mov",
         @"video/quicktime", @"contentType",
     nil];
[facebook requestWithGraphPath:@"me/videos"
                     andParams:dict
                 andHttpMethod:@"POST"
                   andDelegate:self];

Upvotes: 2

Related Questions