0

ユーザーからの小さなメッセージ ブラーブ (「メッセージ」パラメーター) を除いて、すべてのパラメーターが適切に投稿されます。投稿のこの部分が Facebook に表示されないのはなぜですか? パラメータの設定が間違っていませんか?この画像をチェックして、投稿のどの部分について話しているかを確認してください: https://skitch.com/hahmadi82/8uecw/brenton-joynin

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                                       [NSString stringWithFormat:@"%@ has invited you (%@) to enjoy an offer at %@ on %@", [nameArray objectAtIndex:0], [facebookNameArray objectAtIndex:i], spotString, timeChosenString], @"name",
                                                       domain, @"link",
                                                       [NSString stringWithFormat:@"%@ (%@)", offerString, peopleString], @"caption",
                                                       @"Going out? Use JoynIn to grab amazing offers from local bars, clubs, and restaurants. All you need to bring is friends!", @"description",
                                                       titleChosen.text, @"message",              
                                                       nil];
                        [facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed/",[facebookUIDArray objectAtIndex:i]] andParams:params andHttpMethod:@"POST" andDelegate:self];
4

3 に答える 3

0

まず、「どうして」というのは、子供たちが言うことです。笑 ごめんなさい。第二に、これは別のユーザーのフィードへの投稿です。したがって、あなたの壁ではなく、壁の投稿を確認する必要があります。

説明を含める必要があると思います。使用するコードは次のとおりです。あなたのコードはうまくいくはずです。また、%@ フォーマッタに適切な Facebook ID があることを確認する必要があります。

NSString *message = NSLocalizedString(@"FACEBOOK_INVITE_MESSAGE", nil);
NSString *link = @"http://www.facebook.com/trivialapp";
NSString *description = NSLocalizedString(@"FACEBOOK_INVITE_DESCRIPTION", nil);
NSString *picture = @"http://trivi.al/Content/images/icon72.png";
NSMutableDictionary *tParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                message,     @"message",
                                link,        @"link",
                                description, @"description",
                                picture,     @"picture", nil];

[facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed", [playerDict objectForKey:@"id"]] 
                      andParams:tParams
                    andHttpMethod:@"POST"
                    andDelegate:self];
于 2012-04-16T02:07:14.043 に答える
0

投稿ダイアログでメッセージを公開するつもりなら、実際にはそれは不可能です。同じ問題に直面し、Facebook のドキュメントでこれを見つけました

このフィールドは、ユーザーが自分自身を表現するためのものです。このフィールドを事前に入力すると、ユーザーの声の信憑性が損なわれます。

于 2012-04-16T10:02:48.663 に答える
0

あなたの Facebook セッションは有効ですか? if ステートメントで尋ねる:

     if (facebook isSessionValid) {
NSLog (@"Working fine..."); // it might also be better to place the post method in here and put an else statement to open a alert where it says error or something like that
}

そうでない場合....次のような方法を確認してください

handleOpenURL と fbDidLogin

そこにログインして、呼び出されたかどうかを確認してください....そうでない場合は、非常によく似た問題がありました...ガイドします

だから私の問題は、App Delegate で Facebook 変数を宣言する必要があったことでした...これを見てください..これはあなたがすべきことです:

     - (void)viewDidLoad
   {
fbAppDelegate = (NerdfeedAppDelegate *)[[UIApplication sharedApplication] delegate]; 
[[fbAppDelegate facebook] authorize:nil];// or wherever you wanna put it...
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
   }

   -(IBAction)post {

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                                   [NSString stringWithFormat:@"%@ has invited you (%@) to enjoy an offer at %@ on %@", [nameArray objectAtIndex:0], [facebookNameArray objectAtIndex:i], spotString, timeChosenString], @"name",
                                                   domain, @"link",
                                                   [NSString stringWithFormat:@"%@ (%@)", offerString, peopleString], @"caption",
                                                   @"Going out? Use JoynIn to grab amazing offers from local bars, clubs, and restaurants. All you need to bring is friends!", @"description",
                                                   titleChosen.text, @"message",              
                                                   nil];
                    [fbAppDelegate.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed/",[facebookUIDArray objectAtIndex:i]] andParams:params andHttpMethod:@"POST" andDelegate:self];



   }

アプリ Delegate.h:

    @interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate,    FBDialogDelegate, FBLoginDialogDelegate, FBRequestDelegate> 

   {

  Facebook *facebook;

  }


  @property (strong, nonatomic) UIWindow *window;
  @property (strong, nonatomic) Facebook *facebook;

App Delegate.m:

      static NSString *kAppID;
      - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
 return [facebook handleOpenURL:url];
   }

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [facebook handleOpenURL:url];
 }
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ 
  kAppID = [[NSString alloc] initWithString:@"//app id"];
   // ....
   facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:(id)self.viewController];
      [facebook setSessionDelegate:self];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
      if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
      facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
      facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

return YES;
   }


- (void)fbDidLogin {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];    
       }

  -(void)fbDidLogout {


// Remove saved authorization information if it exists
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
    [defaults removeObjectForKey:@"FBAccessTokenKey"];
    [defaults removeObjectForKey:@"FBExpirationDateKey"];
    [defaults synchronize];
   }
  }
于 2012-04-16T08:45:35.737 に答える