我对 iOS 开发非常陌生。我正在制作一个应用程序,我需要在其中集成 twitter 和 Facebook 以进行墙贴。我已经为此完成了所有必需的编码,并且在模拟器上它工作正常,但在设备上却不行。
另一个问题是 Facebook 集成的编码,我已经从其他“演示”应用程序中复制了它。那么我们还需要在其中进行哪些更改才能使其适用于我自己的应用程序。因为当我在 Facebook 墙上看到我的应用程序完成了我的更新时,“演示”应用程序名称随帖子一起出现。
请指导我!!提前谢谢你!
在阅读文档之前,您似乎已经跳到了编码部分。在集成 facebook sdk 并编写代码之前,您需要在 facebook 开发者控制台中创建一个新的应用程序部分,获取一个 Facebook 应用程序 ID。您需要在项目中使用该应用程序 ID,而不是 Facebook 演示应用程序附带的应用程序 ID。
文档完整地解释了这个过程,这里不需要重写。确保你读到最后。
推特
我不确定你在推特上是否也有问题(问题还不清楚)。如果是,您应该说明您是如何连接到 Twitter 的。但总的来说,从你的问题的语气来看,你似乎没有阅读文档,在各自的开发者控制台中创建一个应用程序部分,并获取应用程序 ID。
您可以使用共享工具包框架,http ://getsharekit.com
根据在您的应用程序中集成 twitter。试试这个代码
在 self.fullimage 写任何图像的 url。
调用 buildTweetSheet 方法发布到 Twitter。
导入 Twitter.framework
@property(nonatomic,strong) TWTweetComposeViewController *_tweetSheet;
@synthesize _tweetSheet; -(void)buildTweetSheet { NSLog(@"buildTweetSheet");
_tweetSheet = [[TWTweetComposeViewController alloc] init];
UIImage *eimage=UIImage *eimage=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:self.fullimage]]];
[_tweetSheet setInitialText:@""];
[_tweetSheet addImage:eimage];
[_tweetSheet setInitialText:@""];
[self presentModalViewController:_tweetSheet animated:YES];
TWTweetComposeViewControllerCompletionHandler completionHandler = ^(TWTweetComposeViewControllerResult result)
{
if(result == TWTweetComposeViewControllerResultDone) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Done" message:@"Image Posted Successfully" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failed" message:@"Image Posted Failed" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
[self dismissModalViewControllerAnimated:YES];
};
[_tweetSheet setCompletionHandler:completionHandler];
}
我不知道您需要多少集成,或者您是否愿意需要 iOS 6,但在 iOS 6 中,集成 Facebook 和 Twitter 要容易得多。
这是所有代码:
在头文件中:
#import "Social/Social.h"
在主文件中:
//Twitter
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
if (result == SLComposeViewControllerResultCancelled) {
NSLog(@"Cancelled");
} else {
NSLog(@"Done!");
}
[controller dismissViewControllerAnimated:YES completion:Nil];
};
controller.completionHandler = myBlock;
[controller setInitialText:@"Status Text"];
[self presentViewController:controller animated:YES completion:Nil];
} else {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"You can't send a tweet right now. You must be online and signed into at least one Twitter account." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
//Facebook
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
if (result == SLComposeViewControllerResultCancelled) {
NSLog(@"Cancelled");
} else {
NSLog(@"Done!");
}
[controller dismissViewControllerAnimated:YES completion:Nil];
};
controller.completionHandler = myBlock;
[controller setInitialText:@""];
[self presentViewController:controller animated:YES completion:Nil];
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook Error" message:@"Either you are not logged into Facebook or your Facebook username and password are incorrect." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}