I am unable to get the response from the bot and append it to the web-chat provided by the MS Botframework.
Here's what I have done so far:
Created a bot on https://dev.botframework.com/ (without migration)
Integrated Web Chat and Direct Line
Created a flask listener server and generated HTTPS using ngrok
Gave created server's address as messaging endpoint for the bot
Generated a HTML page using below code (running locally without any server)
<html>
<head>
<link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" />
</head>
<body>
<div id="bot"/>
<script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script>
<script>
BotChat.App({
directLine: { secret: 'direct_line_secret_key' },
user: { id: 'userid' },
bot: { id: 'botid' },
resize: 'detect'
}, document.getElementById("bot"));
</script>
</body>
</html>
Now I am able to send message from the UI as user, and able to capture it in the flask listener server.
But how do I reply from the server so that message will come from bot and append to the UI?
Am I missing something?
I have tried https://directline.botframework.com/v3/directline/conversations/{convoId}/activities to POST a request but that again comes back to server only and does not append to web-chat.
data = json.dumps({"type": "message","from":{"id":"botid"},"text": "Hii!"})
requests.post('https://directline.botframework.com/v3/directline/conversations/' + r['conversation']['id'] + '/activities',
headers={"Authorization": "Bearer " + "secret_key", "Content-Type": "application/json", "Content-Length": "512"},data=data
NOTE: I am using botframework only for the web-chat UI and nothing else.
EDIT 1:
sent this from web-chat ui
http://bcebb07a.ngrok.io/webhook' [POST]>
************************************************************************** {'type': 'message', 'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002',
'timestamp': '2018-06-05T06:51:45.3174659Z', 'serviceUrl':
'https://directline.botframework.com/', 'channelId': 'directline',
'from': {'id': 'sid'}, 'conversation': {'id':
'5DvIa5ImiPF4G6WnGlPYyY'}, 'recipient': {'id':
'one_assist#CrbpWod1mw8', 'name': 'OneAssist'}, 'textFormat': 'plain',
'locale': 'en-US', 'text': 'hello how are you', 'channelData':
{'clientActivityId': '1528180308547.7414264322396316.5'}}
5DvIa5ImiPF4G6WnGlPYyY
#################################################################### {'messages': [{'id':
'5DvIa5ImiPF4G6WnGlPYyY|0000000', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:32:50.9651813Z',
'from': 'sid', 'text': 'hello', 'channelData': {'clientActivityId':
'1528180308547.7414264322396316.0'}, 'images': [], 'attachments': []},
{'id': '5DvIa5ImiPF4G6WnGlPYyY|0000001', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:47:14.1602925Z',
'from': 'sid', 'text': 'how are you', 'channelData':
{'clientActivityId': '1528180308547.7414264322396316.3'}, 'images':
[], 'attachments': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002',
'conversationId': '5DvIa5ImiPF4G6WnGlPYyY', 'created':
'2018-06-05T06:51:45.3174659Z', 'from': 'sid', 'text': 'hello how are
you', 'channelData': {'clientActivityId':
'1528180308547.7414264322396316.5'}, 'images': [], 'attachments':
[]}], 'watermark': '2'}
{ "error": {
"code": "BotError",
"message": "Failed to send activity: bot timed out" }, "httpStatusCode": 504 }
127.0.0.1 - - [05/Jun/2018 12:22:12] "POST /webhook HTTP/1.1" 200 -
************************************************************************** http://bcebb07a.ngrok.io/webhook' [POST]>
************************************************************************** {'type': 'conversationUpdate', 'id': 'D3XJ6CAaVsc', 'timestamp':
'2018-06-05T06:51:56.7508828Z', 'serviceUrl':
'https://directline.botframework.com/', 'channelId': 'directline',
'from': {'id': '5DvIa5ImiPF4G6WnGlPYyY'}, 'conversation': {'id':
'5DvIa5ImiPF4G6WnGlPYyY'}, 'recipient': {'id':
'one_assist#CrbpWod1mw8', 'name': 'OneAssist'}, 'membersAdded':
[{'id': 'botid'}]} 5DvIa5ImiPF4G6WnGlPYyY
#################################################################### {'messages': [{'id':
'5DvIa5ImiPF4G6WnGlPYyY|0000000', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:32:50.9651813Z',
'from': 'sid', 'text': 'hello', 'channelData': {'clientActivityId':
'1528180308547.7414264322396316.0'}, 'images': [], 'attachments': []},
{'id': '5DvIa5ImiPF4G6WnGlPYyY|0000001', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:47:14.1602925Z',
'from': 'sid', 'text': 'how are you', 'channelData':
{'clientActivityId': '1528180308547.7414264322396316.3'}, 'images':
[], 'attachments': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002',
'conversationId': '5DvIa5ImiPF4G6WnGlPYyY', 'created':
'2018-06-05T06:51:45.3174659Z', 'from': 'sid', 'text': 'hello how are
you', 'channelData': {'clientActivityId':
'1528180308547.7414264322396316.5'}, 'images': [], 'attachments':
[]}], 'watermark': '2'}
{ "error": {
"code": "BotError",
"message": "Failed to send activity: bot timed out" }, "httpStatusCode": 504 }
127.0.0.1 - - [05/Jun/2018 12:22:32] "POST /webhook HTTP/1.1" 200 -
# sent this from the server code
************************************************************************** http://bcebb07a.ngrok.io/webhook' [POST]>
************************************************************************** {'type': 'message', 'id': '5DvIa5ImiPF4G6WnGlPYyY|0000003',
'timestamp': '2018-06-05T06:52:16.6925987Z', 'serviceUrl':
'https://directline.botframework.com/', 'channelId': 'directline',
'from': {'id': 'botid'}, 'conversation': {'id':
'5DvIa5ImiPF4G6WnGlPYyY'}, 'recipient': {'id':
'one_assist#CrbpWod1mw8', 'name': 'OneAssist'}, 'text': 'Hii!'}
5DvIa5ImiPF4G6WnGlPYyY
#################################################################### {'messages': [{'id':
'5DvIa5ImiPF4G6WnGlPYyY|0000000', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:32:50.9651813Z',
'from': 'sid', 'text': 'hello', 'channelData': {'clientActivityId':
'1528180308547.7414264322396316.0'}, 'images': [], 'attachments': []},
{'id': '5DvIa5ImiPF4G6WnGlPYyY|0000001', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:47:14.1602925Z',
'from': 'sid', 'text': 'how are you', 'channelData':
{'clientActivityId': '1528180308547.7414264322396316.3'}, 'images':
[], 'attachments': []}, {'id': '5DvIa5ImiPF4G6WnGlPYyY|0000002',
'conversationId': '5DvIa5ImiPF4G6WnGlPYyY', 'created':
'2018-06-05T06:51:45.3174659Z', 'from': 'sid', 'text': 'hello how are
you', 'channelData': {'clientActivityId':
'1528180308547.7414264322396316.5'}, 'images': [], 'attachments': []},
{'id': '5DvIa5ImiPF4G6WnGlPYyY|0000003', 'conversationId':
'5DvIa5ImiPF4G6WnGlPYyY', 'created': '2018-06-05T06:52:16.6925987Z',
'from': 'botid', 'text': 'Hii!', 'images': [], 'attachments': []}],
'watermark': '3'}
https://directline.botframework.com/v3/directline/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities/
https://directline.botframework.com/v3/conversations/5DvIa5ImiPF4G6WnGlPYyY/activities
{ "error": {
"code": "BotError",
"message": "Failed to send activity: bot timed out" }, "httpStatusCode": 504 }
I had a similar issue while using ngrok and I notice in your logs there are references to 127.0.0.1. Try adding the -host-header parameter to your ngrok command line.
For example I use
ngrok http -host-header=localhost:55486 55486
Where 55486 is the port number my endpoint sits on.
Related
I have created a mapping:
request_body = {
'settings': {
'number_of_shards': 3,
'number_of_replicas': 2
},
'mappings': {
'dynamic': 'strict',
'properties': {
'content': {'index': True, 'type': 'text'},
'location': {'type': 'geo_point'},
'retweet_count': {'type': 'integer'},
'favorite_count': {'type': 'integer'},
'happened_at': {'type': 'date'},
'author': {
'properties': {
'id': {'type': 'integer'},
'screen_name': {'type': 'text'},
'name': {'type': 'text'},
'description': {'index': True, 'type': 'text'},
'followers_count': {'type': 'integer'},
'friends_count': {'type': 'integer'},
'statuses_count': {'type': 'integer'}
}
},
'country': {
'properties': {
'id': {'type': 'integer'},
'code': {'type': 'text'},
'name': {'type': 'text'}
}
},
'parent_id': {'type': 'integer'},
'mentions': {
'type': 'nested',
'properties': {
'id': {'type': 'integer'},
'screen_name': {'type': 'text'},
'name': {'type': 'text'}
}
},
'hashtags': {
'type': 'nested',
'properties': {
'id': {'type': 'integer'},
'value': {'type': 'text'}
}
}
}
}
}
and then I create an index: es.indices.create(index='pdt', body=request_body), where es is instance of elasticsearch in python.
Then I want to insert a dictionary using bulk insert, the dictionary:
'_id' = {str} '1290712423939346432'
'_source' = {dict}
'content' = {str} 'RT #drfahrettinkoca: YENİ HASTA SAYISINDAKİ YÜKSELME CİDDİ. İki gün arasındaki fark, yakın zamanda ilk kez bu kadar belirgin. Bayram ve tat…'
'location' = {NoneType} None
'retweet_count' = {int} 9556
'favorite_count' = {int} 0
'happened_at' = {str} '2020-08-04 20:13:16+02:00'
'author' = {dict}
'parent_id' = {str} '1290699635003133953'
'mentions' = {list}
'hashtags' = {list}
The only item that is not present is the country, which can be None. I tried with both country = None and
'country': {
'id': None,
'code': None,
'name': None,
}
So I am not sure where the problem could be. Is passing an empty list a problem?
Here is the error code:
('1 document(s) failed to index.', [{'index': {'_index': 'pdt', '_type': 'tweet', '_id': '1290712423939346432', 'status': 400, 'error': {'type': 'illegal_argument_exception', 'reason': 'cannot change object mapping from nested to non-nested'}, 'data': {'content': 'RT #drfahrettinkoca: YENİ HASTA SAYISINDAKİ YÜKSELME CİDDİ. İki gün arasındaki fark, yakın zamanda ilk kez bu kadar belirgin. Bayram ve tat…', 'location': None, 'retweet_count': 9556, 'favorite_count': 0, 'happened_at': '2020-08-04 20:13:16+02:00', 'author': {'id': 794067571226066944, 'screen_name': 'zonguldak_ism', 'name': 'Zonguldak İSM', 'description': 'Adres:Yayla Mah. Ömer Karahasan Sok. No:6 Merkez/ZONGULDAK Telefon:+90 372 253 4607 Fax:+90 372 253 0667', 'followers_count': 703, 'friends_count': 91, 'statuses_count': 1446}, 'parent_id': '1290699635003133953', 'mentions': [{'id': 3679748, 'screen_name': 'drfahrettinkoca', 'name': 'Dr. Fahrettin Koca'}], 'hashtags': []}}}])
I am creating a slack app where people can schedule when they are on call. I use two date pickers to specify the start date and the end date, and a button to submit the data. What I can't figure out is if the date picker selected_date data can be sent along with the button press, as only initial_date is shown in the block JSON.
Here is the response I get from pressing the button:
[{'action_id': 'hjy',
'action_ts': '1563202745.027278',
'block_id': 'uPBVi',
'text': {'emoji': True, 'text': 'Submit', 'type': 'plain_text'},
'type': 'button',
'value': 'yes'}],
'api_app_id': 'AKL2KTU75',
'channel': {'id': 'CKVM4FJM6', 'name': 'general'},
'container': {'channel_id': 'CKVM4FJM6',
'is_ephemeral': False,
'message_ts': '1563200576.002500',
'type': 'message'},
'message': {'blocks': [{'block_id': 'tgnS',
'text': {'text': 'Hello+<#UKVM4F04Q>!+select+the+days+you+will+be+available+through+below',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'bSu1B', 'type': 'divider'},
{'accessory': {'action_id': '5k6C',
'initial_date': '2019-7-15',
'placeholder': {'emoji': True,
'text': 'Select+a+date',
'type': 'plain_text'},
'type': 'datepicker'},
'block_id': 'CcW',
'text': {'text': 'Start+Date',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'accessory': {'action_id': 'D5UB',
'initial_date': '2019-7-15',
'placeholder': {'emoji': True,
'text': 'Select+a+date',
'type': 'plain_text'},
'type': 'datepicker'},
'block_id': 'Rpo5',
'text': {'text': 'End+Date',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'uPBVi',
'elements': [{'action_id': 'hjy',
'text': {'emoji': True,
'text': 'Submit',
'type': 'plain_text'},
'type': 'button',
'value': 'yes'},
{'action_id': '6t/g',
'text': {'emoji': True,
'text': 'Cancel',
'type': 'plain_text'},
'type': 'button',
'value': 'no'}],
'type': 'actions'}],
'bot_id': 'BKZJLQGG6',
'subtype': 'bot_message',
'text': "This+content+can't+be+displayed.",
'ts': '1563200576.002500',
'type': 'message',
'username': 'pythonapp'},
'response_url': 'https://hooks.slack.com/actions/TKV776BD2/688472980689/5Y52XBs2bUqdnOlwWLq0vWDp',
'team': {'domain': 'testing-o4a6006', 'id': 'TKV776BD2'},
'token': '[leaving out]',
'trigger_id': '694351571380.675245215444.f509bc26fc7ac4c230627e6b32fca516',
'type': 'block_actions',
'user': {'id': 'UKVM4F04Q',
'name': 'noahbraunfeld',
'team_id': 'TKV776BD2',
'username': 'noahbraunfeld'}}
And here is the response I get from the datepickers:
{'actions': [{'action_id': '5k6C',
'action_ts': '1563201722.414594',
'block_id': 'CcW',
'initial_date': '2019-7-15',
'selected_date': '2019-07-14',
'type': 'datepicker'}],
'api_app_id': 'AKL2KTU75',
'channel': {'id': 'CKVM4FJM6', 'name': 'general'},
'container': {'channel_id': 'CKVM4FJM6',
'is_ephemeral': False,
'message_ts': '1563200576.002500',
'type': 'message'},
'message': {'blocks': [{'block_id': 'tgnS',
'text': {'text': 'Hello+<#UKVM4F04Q>!+select+the+days+you+will+be+available+through+below',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'bSu1B', 'type': 'divider'},
{'accessory': {'action_id': '5k6C',
'initial_date': '2019-7-15',
'placeholder': {'emoji': True,
'text': 'Select+a+date',
'type': 'plain_text'},
'type': 'datepicker'},
'block_id': 'CcW',
'text': {'text': 'Start+Date',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'accessory': {'action_id': 'D5UB',
'initial_date': '2019-7-15',
'placeholder': {'emoji': True,
'text': 'Select+a+date',
'type': 'plain_text'},
'type': 'datepicker'},
'block_id': 'Rpo5',
'text': {'text': 'End+Date',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'uPBVi',
'elements': [{'action_id': 'hjy',
'text': {'emoji': True,
'text': 'Submit',
'type': 'plain_text'},
'type': 'button',
'value': 'yes'},
{'action_id': '6t/g',
'text': {'emoji': True,
'text': 'Cancel',
'type': 'plain_text'},
'type': 'button',
'value': 'no'}],
'type': 'actions'}],
'bot_id': 'BKZJLQGG6',
'subtype': 'bot_message',
'text': "This+content+can't+be+displayed.",
'ts': '1563200576.002500',
'type': 'message',
'username': 'pythonapp'},
'response_url': '[leaving out]',
'team': {'domain': 'testing-o4a6006', 'id': 'TKV776BD2'},
'token': '[leaving out]',
'trigger_id': '696646850567.675245215444.317894098ee3aa6938c5c40d4107fb68',
'type': 'block_actions',
'user': {'id': '[leaving out]',
'name': 'noahbraunfeld',
'team_id': 'TKV776BD2',
'username': 'noahbraunfeld'}}
I've been trying to get the "separator" property of Adaptive cards to work, but it does not seem to be rendering in the BotFramework Emulator.
Here are images to the Emulator and the Visualizer for the same code: Emulator Visualizer
The code in both places is the same, and is as follows:
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
'$schema': 'http://adaptivecards.io/schemas/adaptive-card.json',
'version': '1.0',
'type': 'AdaptiveCard',
'body': [
{
'type': 'TextBlock',
'text': 'Meeting Title',
'weight': 'bolder'
},
{
'type': 'TextBlock',
'text': 'Location',
'separator': true,
'isSubtle': true,
'size': 'small'
},
{
'type': 'TextBlock',
'text': 'Location',
'spacing': 'none'
},
{
'type': 'TextBlock',
'text': 'Organizer',
'separator': true,
'isSubtle': true,
'size': 'small'
},
{
'type': 'TextBlock',
'text': 'Organizer Name',
'spacing': 'none'
},
{
'type': 'TextBlock',
'text': 'Start Time',
'separator': true,
'isSubtle': true,
'size': 'small'
},
{
'type': 'ColumnSet',
'spacing': 'none',
'columns': [
{
'type': 'Column',
'width': 'auto',
'items': [
{
'type': 'TextBlock',
'text': '05:00 PM',
'isSubtle': false,
'weight': 'bolder'
}
]
},
{
'type': 'Column',
'width': 'auto',
'items': [
{
'type': 'TextBlock',
'text': 'May 21'
}
]
},
{
'type': 'Column',
'width': 'auto',
'items': [
{
'type': 'TextBlock',
'text': '2017',
'isSubtle': true,
'weight': 'bolder'
}
]
}
]
},
{
'type': 'TextBlock',
'text': 'End Time',
'separator': true,
'isSubtle': true,
'size': 'small'
},
{
'type': 'ColumnSet',
'spacing': 'none',
'columns': [
{
'type': 'Column',
'width': 'auto',
'items': [
{
'type': 'TextBlock',
'text': '05:30 PM',
'isSubtle': false,
'weight': 'bolder'
}
]
},
{
'type': 'Column',
'width': 'auto',
'items': [
{
'type': 'TextBlock',
'text': 'May 21'
}
]
},
{
'type': 'Column',
'width': 'auto',
'items': [
{
'type': 'TextBlock',
'text': '2017',
'isSubtle': true,
'weight': 'bolder'
}
]
}
]
}
],
'actions': [
{
'type': 'Action.Submit',
'title': 'Accept',
'data':{
'accept': true
}
},
{
'type': 'Action.Submit',
'title': 'Decline',
'data':{
'accept': false
}
}
]
}
}
As seen, The separators appear only in the visualizer, for the same code. Am I missing something?
Instead of separator you can use
Separation = SeparationStyle.Strong
this is working for me
it might be a little bit tricky because the separator documentation is a little bit vague (at least for me).
Take a look here - the syntax purposed to separator doesn't seem to work anywhere.
What I did find:
The spacing property works just fine (at least with these values "none" | "small" | "default" | "medium" | "large" | "extraLarge" | "padding")
It will only works when using in containers (Container, ColumnSet, Column, etc.)
It is also apply (as the name implies) on the outer area of the container (similar to CSS margin property)
Will not work for the first container
You may go to the adaptive cards classic editor and put spacing (let's say "spacing": "large") on the second Container section (there are only 2 of them) and observe the spacing impact by yourself
Please see the partial json file below:
'audience': {
'targeting': {
'8': {
'updated_at': '2012-03-05T19:55:08Z',
'targeting_value': 'deals',
'id': 'aiiy',
'line_item_id': '1569',
'account_id': 'xxxx',
'deleted': False,
'created_at': '2012-03-05T19:55:08Z',
'name': 'deals',
'targeting_type': 'UNORDERED_KEYWORD'
},
'2': {
'updated_at': '2012-03-05T19:55:08Z',
'targeting_value': 'money',
'id': 'aiis',
'line_item_id': '1569',
'account_id': 'yyyyy',
'deleted': False,
'created_at': '2012-03-05T19:55:08Z',
'name': 'money',
'targeting_type': 'UNORDERED_KEYWORD'
}
Above is part of json file when I try to insert complete json in elasticsearch I get as below. any help.
raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
elasticsearch.exceptions.RequestError: TransportError(400, 'mapper_parsing_exception', 'failed to parse [ad_audience:targeting:8:targeting_value]')
I get errors at a lot of places when trying to retrieve ticker symbols for US companies from http://d.yimg.com/autoc.finance.yahoo.com/autoc?callback=YAHOO.Finance.SymbolSuggest.ssCallback&query=Wal-Mart
I have tried to:
resp = Net::HTTP.get_response(URI.parse(url))
data = resp.body
qwe = data.split("symbol")
p qwe[1]
arr1 = data.split("(")
arr2 = arr1[1].split(")")
fnl = arr2[0].gsub(/-/, '')
fnl = fnl.gsub(/\(/, '')
fnl = fnl.gsub(/\)/, '')
fnl = fnl.gsub(/\./, '')
fnl = fnl.gsub('\'', '"')
fnl = fnl.gsub(/([\{|\,}])\s*([a-zA-Z]+):/, '\1 "\2":')
But this doesnt help as i see:
/Library/Ruby/Gems/1.8/gems/json-1.2.0/lib/json/common.rb:123:in `parse': 353: unexpected token at '{"symbol":"BEEV","name": "BENCHMARK ENERGY CORP ' (JSON::ParserError)
Any clues as to what i might be doing wrong?
I don't know why you're doing all those replacements. It works fine once you strip the function call:
>>> pprint.pprint(json.loads(t[39:-1]))
{'ResultSet': {'Query': 'wal-mart',
'Result': [{'exch': 'NYQ',
'exchDisp': 'NYSE',
'name': 'Wal-Mart Stores Inc.',
'symbol': 'WMT',
'type': 'S'},
{'exch': 'MEX',
'exchDisp': 'Mexico',
'name': 'WAL-MART-V',
'symbol': 'WALMEXV.MX',
'type': 'S'},
{'exch': 'TLX',
'name': 'WAL-MART STORES',
'symbol': '984101.TI',
'type': 'S'},
{'exch': 'HAM',
'exchDisp': 'Hamburg',
'name': 'WAL-MART STORES',
'symbol': 'WMT.HM',
'type': 'S'},
{'exch': 'STU',
'exchDisp': 'Stuttgart',
'name': 'WAL-MART-V',
'symbol': '4GN.SG',
'type': 'S'},
{'exch': 'FRA',
'exchDisp': 'Frankfurt',
'name': 'WAL-MART STORES',
'symbol': 'WMT.F',
'type': 'S'},
{'exch': 'FRA',
'exchDisp': 'Frankfurt',
'name': 'WAL-MART-V',
'symbol': '4GN.F',
'type': 'S'},
{'exch': 'BER',
'exchDisp': 'Berlin',
'name': 'WAL-MART STORES',
'symbol': 'WMT.BE',
'type': 'S'},
{'exch': 'STU',
'exchDisp': 'Stuttgart',
'name': 'WAL-MART STORES',
'symbol': 'WMT.SG',
'type': 'S'},
{'exch': 'BUE',
'exchDisp': 'Buenos Aires',
'name': 'WAL-MART STORES INC 2',
'symbol': 'DWMT2.BA',
'type': 'S'}]}}