0

(私は以前にSoundCloud GoogleGroups(廃止されましたか?)を試しましたが、これについてはSoundCloudの連絡先に直接問い合わせてください。問題をここに投稿するように言われました。)

iOS で SoundCloudAPI を理解しようとしたところ、厄介なエラーが見つかりました。これは API のバグか、SoundCloud のバグか、または (ほとんどの場合) 何か間違ったことをしている可能性があります。:) しかし、最終的には壊れたアプリになるので、ここで何がうまくいかないのかを理解したいと思っています.

Tobias のビデオと CocoaSoundCloudAPI の readme に従って、新しい iOS プロジェクトをセットアップしました。

SCShareViewController を使用して、会社用に作成したテスト用の SoundCloud アカウントに接続します。次に、アプリ内でテスト会社の FaceBook アカウントへの新しい接続を作成します。インストールをクリックし、すべての権限を許可します。

その後、アプリがハングし、(SCRecordingSaveViewController.m 内の) キャッチされていない例外 'NSInvalidArgumentException' によりアプリが終了します:

cell.textLabel.text = [connection objectForKey:@"display_name"];

今アプリを実行すると、この行でクラッシュします。

接続 NSDictionary の内容をダンプすると、self.availableConnections に 2 つの接続がリストされているように見えます。これは、会社の FaceBook ページに指定した display_name を持つ「facebook_page」接続です。ただし、display_name が null の 2 番目の「facebook_profile」もあります。API のクラッシュを引き起こしているのは、この 2 番目の接続です。おそらく、API 開発者は null の display_name を想定していなかったのでしょうが、2 つの FaceBook 接続がリストされている理由がまったくわかりません。

「display_name」の値をさらに調査すると、Xcode は「Variable は CFString ではありません」と通知し、実際にクラスを見るとそうではありません。

ブラウザーで SoundCloud にアクセスすると、接続を一覧表示でき、そのうちの 2 つが表示されます。1 つは私の会社の FB アカウントの名前で、もう 1 つは次のとおりです。

「http://facebook.com/profile.php?id= * ** * *はあなたの主要な Facebook ユーザー アカウントです」

これらの両方を切断すると、クラッシュすることなく、SoundCloudAPI を再び使用できます。

次に、SoundCloud と FaceBook の新しい個人用テスト アカウントを作成し、アプリ内で同じことを繰り返しました。今回はクラッシュしませんでした (そして実際にうまく機能しました)。接続 NSDictionary には、有効な display_name を持つ 1 つの接続 "facebook_profile" があります。ブラウザ経由のSoundCloudでも、接続が1つだけリストされます。

これは、コードを変更しない CocoaSoundCloudDemo でも発生することに注意してください。

会社のアカウントに接続するときにクラッシュしないように、コードをハックすることもできます。

// cell.textLabel.text = [connection objectForKey:@"display_name"]; 

id displayName = [connection objectForKey:@"display_name"];
if ([displayName isKindOfClass:[NSString class]]) 
{
    cell.textLabel.text = (NSString*)displayName;
}

...これにより、FB 接続を含む 2 つの行が得られますが、2 番目の行は空白です。少し努力すれば、コードで彼らが何をしているのかを理解し、display_nameが無効な場合は行を表示しないようにすることができますが、明らかにそれを行う必要はなく、標準のAPIコードを使用したいと思います.

SO、簡単に言えば:-

1) SoundCloud では会社の FaceBook アカウントに接続できますか? SoundCloud が「Facebook_page」ではなく「Facebook_profile」のみを表示するように、その FaceBook アカウントで行う必要がある特別な設定はありますか? 問題は iOS API ではなく、SoundCloud 自体にあるようですが、クラッシュするのは API です。

2)私のテストアプリから、ユーザーがSoundCloudアカウントを会社のFaceBookアカウントに接続しようとすると(少なくとも、私が持っている最小限の設定で)、SoundCloudAPIが例外でクラッシュし、アプリ全体がユーザーがブラウザーを使用して SoundCloud にログオンし、2 つの接続を手動で削除するまでクラッシュし続けます。確かにこれは良いことではありませんが、同様の問題を抱えている人をグーグルで検索しましたが、何も見つかりませんでした. これに対する修正が見つからない限り、ユーザーが同じクラッシュ バグに遭遇することを恐れて、アプリで完全な API を使用することはできず、FaceBook などに共有する必要を回避するカットダウン カスタム UI を作成する必要があるかもしれません。

4

1 に答える 1

1

申し訳ありませんが、私たちは以前に戻ってきませんでした。SDK ユーザーからフィードバックを受け取ることは常に良いことですnil。値を確認し、それに応じてこのケースを処理する必要があります。

ただし、あなたが説明している状況を調査したところ、実際には問題なく機能しました。SoundCloud プロファイル設定で新しい Facebook ページと SoundCloud アカウントを接続するとすぐに、Facebook の 2 行が正しく表示されました。

実行して、どのアカウントが接続されているかを確認することもできます

curl "https://api.soundcloud.com/me/connections.json?oauth_token=<YOUR_OAUTH_TOKEN> 

私の場合、私はこのようなものを受け取りました

{
"kind": "connection",
"id": 12345678,
"created_at": "2013/01/10 15:55:20 +0000",
"display_name": "Testpage",
"post_publish": true,
"post_favorite": true,
"type": "facebook_page",
"service": "facebook_page",
"uri": "https://api.soundcloud.com/connections/12345678"
},
{
"kind": "connection",
"id": 12345679,
"created_at": "2013/01/10 11:07:56 +0000",
"display_name": "Rob",
"post_publish": true,
"post_favorite": true,
"type": "facebook_profile",
"service": "facebook_profile",
"uri": "https://api.soundcloud.com/connections/12345679"
}

そのため、SDK を介して新しいサウンドをアップロードしているときに、共有セクションに 2 つの Facebook 行が表示されました。この問題はまだ発生していますか?

まもなく iOS SDK のアップデートをリリースする予定ですので、しばらくお待ちください。フィードバックをお寄せいただきありがとうございます。

于 2013-01-10T18:21:18.627 に答える