また、グラフ API を使用して通知を投稿しようとしています。最初にアプリの access_token をリクエストすると、適切に返されます。それを行う必要があるように、通知要求のパラメーターとして使用します。それでも、「このメソッドはアプリのaccess_tokenで呼び出す必要があります」という同じエラーメッセージが表示されます...そして、アプリはWebアプリケーションとして構成されています。
最初の5時間は楽しかったけど、ちょっと面倒くさくなってきた…
他のアイデア、世界?お願いします?
編集:
私は一晩中この問題と戦ってきましたが、翌朝、最終的にあきらめることにしました。この API には私が理解できない問題が確実にあり、どこにも解決策を見つけることができません。
誰かがアイデアを思いついた場合に備えて、私が何をしているのかについてのいくつかの詳細:
Facebook iOS SDK を使用した iOS アプリです。ログイン、承認、友達プロフィールの取得、ウォールへのメッセージの投稿: すべて正常に動作しています。
次に、通知を送信するために、まずアプリ アクセス トークンを取得する要求を送信します。
NSDictionary* parameters = @{@"client_id": [THE APP FACEBOOK ID], @"client_secret" : [THE APP FACEBOOK SECRET], @"grant_type" : @"client_credentials"};
NSURL* feedURL = [NSURL URLWithString:@"https://graph.facebook.com/oauth/access_token"];
SLRequest *feedRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET URL:feedURL parameters:parameters];
feedRequest.account = self.account;
[feedRequest performRequestWithHandler ... ]
リクエストの回答:
NSString* tokenString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding: NSUTF8StringEncoding];
NSArray* chunks = [tokenString componentsSeparatedByString: @"="];
NSString* appAccessToken = [chunks objectAtIndex:1];
NSLog(@"appAccessToken '%@'", appAccessToken);
それは期待どおりに機能するようです。私は得る:
appAccessToken '1309[HIDDEN]|-eta-nuWz[HIDDEN]'
今、私は通知を投稿しようとします
NSDictionary* parameters = @{@"href": [myHref absoluteString], @"access_token" : appAccessToken, @"template" : myMessage};
NSURL* feedURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/notifications", theRecipientFacebookId];
SLRequest* feedRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:feedURL parameters:parameters];
feedRequest.account = self.account;
[feedRequest performRequestWithHandler: ... ]
残念ながら、私はこれを取得し続けます:
error = {
code = 15;
message = "(#15) This method must be called with an app access_token.";
type = OAuthException;
};
それは本当に私を夢中にさせています....