My app was functioning fine until sometime last week. For some reason all the background images stopped appearing in the actual Google Glass. They do appear in the playgorund. Anyone know how to fix this? Here's an example of my app home card (I changed the URLs). The home.jpg image does not appear.
{
"kind": "mirror#timelineItem",
"id": "a48a9a6a-67df-4035-859f-b33f05c4e11e",
"created": "2013-06-14T16:24:17.460Z",
"updated": "2013-06-14T16:24:17.460Z",
"etag": "\"r3ghbVW9Rp1kDP4UexS05_pFx4E/gCTDXyXBhsaPhUc6MnVaYblah\"",
"html": "<article class=\"photo\">\t<img src=\"https://myapp.appspot.com/static/images/home.jpg?cacheKiller=098234092384\" width=\"100%\" height=\"100%\">\t<div class=\"photo-overlay\"></div>\t<section>\t\t<p class=\"text-auto-size\"></p>\t</section></article>",
"menuItems": [
{
"id": "menu1",
"action": "CUSTOM",
"values": [
{
"displayName": "Menu 1",
"iconUrl": "https://myapp.appspot.com/static/images/icon.png?cacheKiller=098234092384"
}
]
},
{
"id": "menu2",
"action": "CUSTOM",
"values": [
{
"displayName": "Menu 2",
"iconUrl": "https://myapp.appspot.com/static/images/icon.png?cacheKiller=098234092384"
}
]
},
{
"id": "menu3",
"action": "CUSTOM",
"values": [
{
"displayName": "Menu 3",
"iconUrl": "https://myapp.appspot.com/static/images/icon.png?cacheKiller=098234092384"
}
]
},
{
"id": "menu4",
"action": "CUSTOM",
"values": [
{
"displayName": "Menu 4",
"iconUrl": "https://myapp.appspot.com/static/images/icon.png?cacheKiller=098234092384"
}
]
},
{
"id": "pinned",
"action": "TOGGLE_PINNED"
}
],
"notification": {
"level": "DEFAULT"
}
}
This appears to be a more widespread problem, possibly since the introduction of XE6. In many of the cases, the background image will show up later.
Since you have some concrete examples of this, I suggest you open a bug in the issue tracker.
An update was made and issue corrected. Just need to soft reset (hold down for 15 seconds) and be connected to data.
The issue was css related for photos. It did not effect videos.
Related
This seems to be the most authoritative documentation that I've found so far: https://docs.metaplex.com/nft-standard
{
"name": "Solflare X NFT",
"symbol": "",
"description": "Celebratory Solflare NFT for the Solflare X launch",
"seller_fee_basis_points": 0,
"image": "https://www.arweave.net/abcd5678?ext=png",
"animation_url": "https://www.arweave.net/efgh1234?ext=mp4",
"external_url": "https://solflare.com",
"attributes": [
{ "trait_type": "web", "value": "yes" },
{ "trait_type": "mobile", "value": "yes" },
{ "trait_type": "extension", "value": "yes" }
],
"collection": { "name": "Solflare X NFT", "family": "Solflare" },
"properties": {
"files": [
{
"uri": "https://www.arweave.net/abcd5678?ext=png",
"type": "image/png"
},
{
"uri": "https://watch.videodelivery.net/9876jkl",
"type": "unknown",
"cdn": true
},
{ "uri": "https://www.arweave.net/efgh1234?ext=mp4", "type": "video/mp4" }
],
"category": "video",
"creators": [
{ "address": "SOLFLR15asd9d21325bsadythp547912501b", "share": 100 }
]
}
}
These same docs state clearly that many fields are optional and should be omitted when not used. But which fields are required and which ones are optional?
Depends what you want to use it for. The simplest requirements I have used were:
{
"name": "Solflare X NFT",
"seller_fee_basis_points": 0,
"image": "https://www.arweave.net/abcd5678?ext=png",
"properties": {
"files": [
{
"uri": "https://www.arweave.net/abcd5678?ext=png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{ "address": "SOLFLR15asd9d21325bsadythp547912501b", "share": 100 }
]
}
}
There is no reason to not include the rest as the cost of hosting this off-chain is minimal. I think most things would be optional but the important ones for an NFT would be the image attribute, as otherwise the NFT wont be able to be displated anywhere, and probably then the propertiess field because some wallets, DApps and marketplaces might use these fields to check file type. Creators should also be added if you want to receive royalties and without this field could result in your collection failing to be listed on marketplaces.
A short answer though, the minimum is not defined anywhere as removing certain things could break certain third party DApps. Depending how/where you want to use your NFT I would find out the requirements if you are desperately trying to minimise the metadata. Otherwise try to keep most of it.
I am making a discord webhook, and I want to know all the different things I can add to it.
As far as styling it goes; I only have a color and a message. (My code is not included besides that, just the code for the color and the message)
.setTitle('Biscuit AIO Cooked!')
.setColor('#84e1f4');
If anyone can link me a site or reply to me with all of the things I can add to the webhook, please do so :)
Read about message embeds and embed visualizer.
At last one of the features of a webhook is that you can send several embeds at once message. So code will looks like this.
{
"content": "this `supports` __a__ **subset** *of* ~~markdown~~ π ```js\nfunction foo(bar) {\n console.log(bar);\n}\n\nfoo(1);```",
"embeds": [
{
"title": "title ~~(did you know you can have markdown here too?)~~",
"description": "this supports [named links](https://discordapp.com) on top of the previously shown subset of markdown. ```\nyes, even code blocks```",
"url": "https://discordapp.com",
"color": 11038012,
"timestamp": "2020-07-03T15:05:41.392Z",
"footer": {
"icon_url": "https://cdn.discordapp.com/embed/avatars/0.png",
"text": "footer text"
},
"thumbnail": {
"url": "https://cdn.discordapp.com/embed/avatars/0.png"
},
"image": {
"url": "https://cdn.discordapp.com/embed/avatars/0.png"
},
"author": {
"name": "author name",
"url": "https://discordapp.com",
"icon_url": "https://cdn.discordapp.com/embed/avatars/0.png"
},
"fields": [
{
"name": "π€",
"value": "some of these properties have certain limits..."
},
{
"name": "π±",
"value": "try exceeding some of them!"
},
{
"name": "π",
"value": "an informative error should show up, and this view will remain as-is until all issues are fixed"
},
{
"name": "<:thonkang:219069250692841473>",
"value": "these last two",
"inline": true
},
{
"name": "<:thonkang:219069250692841473>",
"value": "are inline fields",
"inline": true
}
]
},
{
"title": "title ~~(did you know you can have markdown here too?)~~",
"description": "this supports [named links](https://discordapp.com) on top of the previously shown subset of markdown. ```\nyes, even code blocks```",
"url": "https://discordapp.com",
"color": 11038012,
"timestamp": "2020-07-03T15:05:41.392Z",
"footer": {
"icon_url": "https://cdn.discordapp.com/embed/avatars/0.png",
"text": "footer text"
},
"thumbnail": {
"url": "https://cdn.discordapp.com/embed/avatars/0.png"
},
"image": {
"url": "https://cdn.discordapp.com/embed/avatars/0.png"
},
"author": {
"name": "author name",
"url": "https://discordapp.com",
"icon_url": "https://cdn.discordapp.com/embed/avatars/0.png"
},
"fields": [
{
"name": "π€",
"value": "some of these properties have certain limits..."
},
{
"name": "π±",
"value": "try exceeding some of them!"
},
{
"name": "π",
"value": "an informative error should show up, and this view will remain as-is until all issues are fixed"
},
{
"name": "<:thonkang:219069250692841473>",
"value": "these last two",
"inline": true
},
{
"name": "<:thonkang:219069250692841473>",
"value": "are inline fields",
"inline": true
}
]
}
]
}
I got an error "An error occurred while requesting the visualisation's config resource" while trying to request my custom visualisation. All files have been made public.
manifest.json
{
"name": "Custom Vis",
"description": "By Sorrow",
"devMode": true,
"components": [{
"id": "Custom Vis",
"name": "Custom Vis",
"iconUrl": "https://raw.githubusercontent.com/googledatastudio/community-visualizations/master/docs/codelab/img/bar_chart.png",
"description": "Custom Vis",
"resource": {
"js": "custom-vis/final.js",
"config": "custom-vis/config.json",
"css": "custom-vis/style.css"
}
}]
}
config.json
{
"data": [
{
"id": "concepts",
"label": "Concepts",
"elements": [
{
"id": "barDimension",
"label": "Dimension",
"type": "DIMENSION",
"options": {
"min": 1,
"max": 1
}
},
{
"id": "barMetric",
"label": "Metric",
"type": "METRIC",
"options": {
"min": 1,
"max": 1
}
}
]
}
],
"style": [
{
"id": "color",
"label": "Colors",
"elements": [
{
"type": "FONT_COLOR",
"id": "barColor",
"label": "Bar Color",
"defaultValue": "black"
}
]
}
]
}
Can someone tell me why it doesn't work?
You need to create a folder on the Google Cloud where your files will go:
Then add it like here:
"resource": {
"js": "gs://yourname/index.js",
"config": "gs://yourname/index.json",
"css": "gs://yourname/index.css"
}
PS: watch a video here https://developers.google.com/datastudio/visualization/local-dev
That will save you a lot of time on development.
I stumbled upon the same issue.
Resources were provided in the default tutorial in a form of
"resource": {
"js": "MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.js",
"config": "MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.json",
"css": "MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.css"
}
What was not clear is that they actually need to include gs:// in the path. Would be clearer if they explicitly mentioned it like so:
"resource": {
"js": "gs://MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.js",
"config": "gs://MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.json",
"css": "gs://MY_GOOGLE_CLOUD_STORAGE_BUCKET/myViz.css"
}
It must work this way.
Hopefully someone can help me with this because I've been stumped for a week.
I am creating a simple Alexa skill from one of the samples. It's the color picker skill - you tell Alexa your favorite color, and then you ask her your favorite color. I'm using Custom Slots, and the Skill Service doesn't want to return a value for the color. It launches successfully, and then loads the correct intent, however it doesn't send the correct value. Instead, there's not even a value parameter in the output, just name and confirmation status.
Here's my skill's JSON, followed by the request JSON output after I tell the skill: "My color is red." I want the skill to pass "red" into the value parameter.
{
"interactionModel": {
"languageModel": {
"invocationName": "color picker",
"intents": [
{
"name": "MyColorIsIntent",
"slots": [
{
"name": "color",
"type": "LIST_OF_COLORS"
}
],
"samples": [
"my color is {color}",
"{color} is my color"
]
},
{
"name": "WhatsMyColorIntent",
"slots": [],
"samples": [
"what's my color",
"what's my favorite color"
]
},
{
"name": "AMAZON.NavigateHomeIntent",
"samples": []
}
],
"types": [
{
"name": "LIST_OF_COLORS",
"values": [
{
"name": {
"value": "green"
}
},
{
"name": {
"value": "red"
}
},
{
"name": {
"value": "yellow"
}
},
{
"name": {
"value": "orange"
}
},
{
"name": {
"value": "black"
}
},
{
"name": {
"value": "blue"
}
}
]
}
]
}
}
}
Down below is the request:
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.918d6da6-cd7e-4bb8-a2a9-41fb1af8a354",
"timestamp": "2018-10-01T01:53:56Z",
"locale": "en-US",
"intent": {
"name": "MyColorIsIntent",
"confirmationStatus": "NONE",
"slots": {
"Color": {
"name": "Color",
"confirmationStatus": "NONE"
}
}
}
}
Your issue is that slot "color" should be named "Color" and your sample references changed to reflect this so "my color is {Color}", and "{Color} is my color", It is not picking up the slot because the name is identical.
Be sure to also complete the skill with the required Intents for stop and help, currently, this will just continue asking for color choices until you kill the program.
βThis is what happened:
I was working on different versions of the same skill, each with the same invocation name. When I typed in the invocation name, it actually opened an outdated version of the skill (I hadn't deleted the old skills - I had like 3 different ones - I like to start over). I didn't realize that when you click "test" you can test any of your saved skills, not just the one you have open.
I'm trying to develop an Alexa skill, and I need to get the relative time, eg: "5 minutes ago".
I have defined a time slot for my skill which accepts time like 5 minutes, 6.30 am or 4 in the morning. But I'm not able to accept a time like 5 minutes ago. I new to Alexa and can some one help me out with this
{
"slots": [
{
"name": "time",
"type": "AMAZON.TIME"
}
],
"intent": "ReportTime"
}
You could add a {modifier} slot that can take several keywords like "ago" and "from now". The intent could then have something like the following utterances:
{
"name": "TimeTest",
"samples": [
"what happened {time} {modifier}",
"what will happen {time} {modifier}"
],
"slots": [
{
"name": "time",
"type": "AMAZON.TIME",
"samples": []
},
{
"name": "modifier",
"type": "custom_time_modifier",
"samples": []
}
]
}
with the following custom modifier type:
"types": [
{
"name": "custom_time_modifier",
"values": [
{
"id": null,
"name": {
"value": "ago",
"synonyms": [
"in the past"
]
}
},
{
"id": null,
"name": {
"value": "from now",
"synonyms": [
"in the future"
]
}
}
]
}