我使用Youtube API,我想要一個搜索自動完成功能,就像int網站一樣,當您鍵入iPhone App的搜索輸入框時,它會給您條款建議。我已閱讀文檔,但仍然缺少,這可能使用API嗎?Youtube API自動完成搜索
回答
不是YouTube的API - 但你可以使用Google Suggest API。打電話到這個URL:
http://suggestqueries.google.com/complete/search?client=youtube&ds=yt&q=QUERY
這將返回一個json響應的建議條款,您的應用程序可以解析和顯示。如果你喜歡XML到JSON,改變
client=youtube
到
output=toolbar
(離開參數相同的其餘部分)。
嗯,我知道現在回答太遲了,但我會發布這個答案,因爲這是一個讓我瘋狂幾天的東西!並希望這將節省別人......
所以...我使用這個API : http://suggestqueries.google.com/complete/search?client=youtube&ds=yt&alt=json&q=%@ (Q是自動完成的搜索查詢)。
現在,如果您嘗試打開瀏覽器,請粘貼此API並將q =%@更改爲(可以說):q = br,您會注意到某些帶有後綴.js的文件會下載到您的計算機中。 出於某種原因,我無法分析JSON喜歡,所以我做了那招:
@property(strong, nonatomic) NSMutableArray *ParsingArray // Put that in .h file or after @interface in your .m file
-(void)autocompleteSegesstions : (NSString *)searchWish{
//searchWish is the text from your search bar (self.searchBar.text)
NSString *jsonString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?client=youtube&ds=yt&alt=json&q=%@", searchWish];
NSString *URLString = [jsonString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // Encoding to identify where, for example, there are spaces in your query.
NSLog(@"%@", URLString);
NSData *allVideosData = [[NSData alloc]initWithContentsOfURL:[[NSURL alloc]initWithString:URLString]];
NSString *str = [[NSString alloc]initWithData:allVideosData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str); //Now you have NSString contain JSON.
NSString *json = nil;
NSScanner *scanner = [NSScanner scannerWithString:str];
[scanner scanUpToString:@"[[" intoString:NULL]; // Scan to where the JSON begins
[scanner scanUpToString:@"]]" intoString:&json];
//The idea is to identify where the "real" JSON begins and ends.
json = [NSString stringWithFormat:@"%@%@", json, @"]]"];
NSLog(@"json = %@", json);
NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:[json dataUsingEncoding:NSUTF8StringEncoding] //Push all the JSON autocomplete detail in to jsonObject array.
options:0 error:NULL];
self.ParsingArray = [[NSMutableArray alloc]init]; //array that contains the objects.
for (int i=0; i != [jsonObject count]; i++) {
for (int j=0; j != 1; j++) {
NSLog(@"%@", [[jsonObject objectAtIndex:i] objectAtIndex:j]);
[self.ParsingArray addObject:[[jsonObject objectAtIndex:i] objectAtIndex:j]];
//Parse the JSON here...
}
}}
就是這樣。現在ParsingArray是包含來自youTube的所有自動完成信息的數組!能夠在每次用戶點擊搜索欄另一個字符的時間去改變它,使用此功能:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
[self autocompleteSegesstions:self.searchBar.text];}
現在,這是你應具備的主要代碼。爲使代碼更快(因爲您現在可以看到您的鍵盤上有寫入延遲),請使用另一個線程來下載ParsingArray或使用異步塊。 (只需將第一種方法的內容插入Async塊...)
記住 - 也許還有另一種方法來實現自動完成youTube搜索好得多,但我只是沒有找到它,而我搜索很多!如果有人知道更好的辦法,如果他在這裏發佈,我會更高興。
玩得開心!
它很棒! – user523234
就像我的魅力!感謝好友 – Anoop
將於2015年8月10日貶低。請參閱http://googlewebmastercentral.blogspot.com.au/2015/07/update-on-autocomplete-api.html – AllBlackt
- 1. Youtube API搜索自動完成
- 2. 的Youtube API自動完成搜索工作不
- 3. Slack Channel自動完成搜索API
- 4. 自動完成搜索
- 5. 自動完成搜索
- 6. 自動完成搜索
- 7. Symfony2自動完成搜索
- 8. MongoDB搜索 - 自動完成
- 9. 如何從youtube獲取wordlist搜索Jquery UI自動完成?
- 10. Youtube API搜索
- 11. Youtube搜索API
- 12. 自動完成搜索柔性移動
- 13. 網站搜索,自動完成
- 14. 顯示在自動完成搜索
- 15. 自動完成搜索默認值
- 16. Rails的自動完成jQuery的搜索
- 17. CI中的自動完成搜索
- 18. YUI自動完成:粘貼後搜索?
- 19. 搜索jquery自動完成插件
- 20. Laravel中的自動完成搜索
- 21. 文本搜索 - 自動完成
- 22. 彈性搜索中的自動完成
- 23. Elasticsearch,自動完成搜索分析
- 24. jquery自動完成搜索框
- 25. JQuery自動完成搜索到字母
- 26. Apache Solr搜索自動完成
- 27. JQuery自動完成搜索方法
- 28. 劍道自動完成搜索多列
- 29. Umbraco Lucene搜索自動完成
- 30. 自動完成搜索選項
其中q = QUERY是要搜索的詞嗎?++ – hariszaman