Parsing error: Missing ',' or '}' in Rich Result Test tool by Google - parsing-error

I run this code on Google rich result tool and it shows me this error on line 21-25 Parsing error: Missing ',' or '}', I was trying to find where the missing comma or bracket was but did not quite get it, if anyone knows where the problem is, much appreciated. I also used Google structured data testing tool and it is also showing me error on line 21
Here is the code:
<script data-desc="seo-organization" type="application/ld+json">
{
"#context": "http://schema.org",
"#type": "Organization",
"#id": "https://stockphototees.com#organization",
"name": "Stock Photo Tees",
"url": "https://stockphototees.com","logo": {
"type": "ImageObject",
"url": "https://cdn.shopify.com/s/files/1/1501/0626/t/25/assets
/pluginseo_structuredDataLogo_small.png?v=6356307188231393273"
},
"image": "https://cdn.shopify.com/s/files/1/1501/0626/t/25/assets
/pluginseo_structuredDataLogo_small.png?v=6356307188231393273","
sameAs": ["https://www.facebook.com/stockphototees"]
}
</script><script data-desc="seo-product" type="application/ld+json">
{
"#context": "http://schema.org/",
"#type": "Product",
"#id": "https://stockphototees.com/products/firm-handshakebetween-business-associates#product",
"name": "Firm Handshake Between "Business Associates" sweatshirt",
"image": "https://cdn.shopify.com/s/files/1/1501/0626/products
/firm_handshake_between_business_associates_-
_adobe_stock_apparel_450x450.png?v=1600273744",
"description": "Put. That coffee. Down. Coffee's for closers
only. Nothing says you do business more than this iconic handshake
image. Always be closing: wear this sweatshirt. Sizing information ",
"mpn": "7865498313",
"brand": {
"#type": "Thing",
"name": "Stock Photo Tees"
},
"offers": {
"priceCurrency": "USD",
"lowPrice":30.99,
"highPrice":30.99,
"availability": "OutOfStock",
"offerCount":1,
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
},
"model": [{
"#type": "ProductModel",
"#id": "https://stockphototees.com/products/firmhandshake-between-business-associates#productModel=25326698121",
"url": "https://stockphototees.com/products/firmhandshake-between-business-associates?variant=25326698121",
"name": "Firm Handshake Between Business Associates
sweatshirt XS",
"mpn": "25326698121","sku": "","weight": {
"#type": "QuantitativeValue",
"value": 292,
"unitCode": "GRM"
},
"additionalProperty": [{
"#type": "PropertyValue",
"name": "Size",
"value": "XS"
}],"image": "https://cdn.shopify.com/s/files/1/1501
/0626/products/mockup-f75a6cd3_450x450.jpg?v=1600273720",
"offers": {
"#type": "Offer",
"priceCurrency": "USD",
"availability": "OutOfStock",
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
}
},{
"#type": "ProductModel",
"#id": "https://stockphototees.com/products/firmhandshake-between-business-associates#productModel=25326698185",
"url": "https://stockphototees.com/products/firmhandshake-between-business-associates?variant=25326698185",
"name": "Firm Handshake Between Business Associates
sweatshirt S",
"mpn": "25326698185","sku": "","weight": {
"#type": "QuantitativeValue",
"value": 306,
"unitCode": "GRM"
},
"additionalProperty": [{
"#type": "PropertyValue",
"name": "Size",
"value": "S"
}],"image": "https://cdn.shopify.com/s/files/1/1501
/0626/products/mockup-f75a6cd3_450x450.jpg?v=1600273720",
"offers": {
"#type": "Offer",
"priceCurrency": "USD",
"price":30.99,
"availability": "OutOfStock",
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
}
},{
"#type": "ProductModel",
"#id": "https://stockphototees.com/products/firmhandshake-between-business-associates#productModel=25326698249",
"url": "https://stockphototees.com/products/firmhandshake-between-business-associates?variant=25326698249",
"name": "Firm Handshake Between Business Associates
sweatshirt M",
"mpn": "25326698249","sku": "","weight": {
"#type": "QuantitativeValue",
"value": 323,
"unitCode": "GRM"
},
"additionalProperty": [{
"#type": "PropertyValue",
"name": "Size",
"value": "M"
}],"image": "https://cdn.shopify.com/s/files/1/1501
/0626/products/mockup-f75a6cd3_450x450.jpg?v=1600273720",
"offers": {
"#type": "Offer",
"price":30.99,
"availability": "OutOfStock",
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
}
},{
"#type": "ProductModel",
"#id": "https://stockphototees.com/products/firmhandshake-between-business-associates#productModel=25326698313",
"url": "https://stockphototees.com/products/firmhandshake-between-business-associates?variant=25326698313",
"name": "Firm Handshake Between Business Associates
sweatshirt L",
"mpn": "25326698313","sku": "","weight": {
"#type": "QuantitativeValue",
"value": 366,
"unitCode": "GRM"
},
"additionalProperty": [{
"#type": "PropertyValue",
"name": "Size",
"value": "L"
}],"image": "https://cdn.shopify.com/s/files/1/1501
/0626/products/mockup-f75a6cd3_450x450.jpg?v=1600273720",
"offers": {
"#type": "Offer",
"priceCurrency": "USD",
"price":30.99,
"availability": "OutOfStock",
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
}
},{
"#type": "ProductModel",
"#id": "https://stockphototees.com/products/firmhandshake-between-business-associates#productModel=25326698441",
"url": "https://stockphototees.com/products/firmhandshake-between-business-associates?variant=25326698441",
"name": "Firm Handshake Between Business Associates
sweatshirt XL",
"mpn": "25326698441","sku": "","weight": {
"#type": "QuantitativeValue",
"value": 377,
"unitCode": "GRM"
},
"additionalProperty": [{
"#type": "PropertyValue",
"name": "Size",
"value": "XL"
}],"image": "https://cdn.shopify.com/s/files/1/1501
/0626/products/mockup-f75a6cd3_450x450.jpg?v=1600273720",
"offers": {
"#type": "Offer",
"priceCurrency": "USD",
"price":30.99,
"availability": "OutOfStock",
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
}
},{
"#type": "ProductModel",
"#id": "https://stockphototees.com/products/firmhandshake-between-business-associates#productModel=25326698505",
"url": "https://stockphototees.com/products/firmhandshake-between-business-associates?variant=25326698505",
"name": "Firm Handshake Between Business Associates
sweatshirt 2XL",
"mpn": "25326698505","sku": "","weight": {
"#type": "QuantitativeValue",
"value": 465,
"unitCode": "GRM"
},
"additionalProperty": [{
"#type": "PropertyValue",
"name": "Size",
"value": "2XL"
}],"image": "https://cdn.shopify.com/s/files/1/1501
/0626/products/mockup-f75a6cd3_450x450.jpg?v=1600273720",
"offers": {
"#type": "Offer",
"priceCurrency": "USD",
"price":30.99,
"availability": "OutOfStock",
"seller": {
"#type": "Organization",
"#id": "https://stockphototees.com#organization"
}
}
}]
}}
</script>

Since that's just a JSON, put the contents of your script tags into any JSON editor (e.g. https://jsoneditoronline.org, but any other would work too) and it will point out the issue. One particular issue you have (there may be other) is prematurely ended string here:
"name": "Firm Handshake Between "Business Associates" sweatshirt",
Here, embedded quotes should be escaped like this:
"name": "Firm Handshake Between \"Business Associates\" sweatshirt",
Another problem there is that there are embedded literal newlines for description property. You would need to either strip them or replace with \n.

Related

AWS Neptune HTTP REST change response serializer from GraphSON to JSON

I'm using this sample to make HTTP REST queries from Lambda.
The output format named as GraphSON
{
"requestId": "104803b-e5d-4e49-bad8-e95e32fe7f0",
"status": {
"message": "",
"code": 200,
"attributes": {
"#type": "g:Map",
"#value": []
}
},
"result": {
"data": {
"#type": "g:List",
"#value": []
},
"meta": {
"#type": "g:Map",
"#value": []
}
}
}
and my general question how to specify serializer and get well-formatted JSON output instead of GraphSON without g:Map, #value, etc.
What I've tried: set particular values for Content-Type:
application/json
application/x-amz-json-1.1
application/vnd.gremlin-v3.0+json
Also I've tried to use values above as parameter for serializer in GET params, such as:
https://{host}:{port}/gremlin/?gremlin={query}&serializer=application/vnd.gremlin-v3.0+json
But returned data format still GraphSON.
You can fall back to GraphSON V2 which should yield well formed JSON. It will still have some of the type annotations but does not include map types. For example:
host='https://your-host-name.neptune.amazonaws.com'
curl -X POST $host:8182/gremlin\
-d "{\"gremlin\":\"g.V('3').limit(1)\"}"\
-H "Accept:application/vnd.gremlin-v2.0+json"\
-H "Content-Type:application/vnd.gremlin-v2.0+json" | jq .
Which yields
{
"requestId": "e053be96-73e7-4fc0-b02e-07bdf638cabc",
"status": {
"message": "",
"code": 200,
"attributes": {}
},
"result": {
"data": [
{
"#type": "g:Vertex",
"#value": {
"id": "3",
"label": "airport",
"properties": {
"country": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 1352763338
},
"value": "US",
"label": "country"
}
}
],
"longest": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 134047490
},
"value": {
"#type": "g:Int32",
"#value": 12250
},
"label": "longest"
}
}
],
"code": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -1353043840
},
"value": "AUS",
"label": "code"
}
}
],
"city": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -342536989
},
"value": "Austin",
"label": "city"
}
}
],
"elev": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -1300513844
},
"value": {
"#type": "g:Int32",
"#value": 542
},
"label": "elev"
}
}
],
"icao": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -1123166874
},
"value": "KAUS",
"label": "icao"
}
}
],
"lon": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -1327799778
},
"value": {
"#type": "g:Double",
"#value": -97.6698989868164
},
"label": "lon"
}
}
],
"runways": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 200353151
},
"value": {
"#type": "g:Int32",
"#value": 2
},
"label": "runways"
}
}
],
"region": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 1821242579
},
"value": "US-TX",
"label": "region"
}
}
],
"type": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -1535682079
},
"value": "airport",
"label": "type"
}
}
],
"lat": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -23584191
},
"value": {
"#type": "g:Double",
"#value": 30.1944999694824
},
"label": "lat"
}
}
],
"desc": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -2074163175
},
"value": "Austin Bergstrom International Airport",
"label": "desc"
}
}
]
}
}
}
],
"meta": {}
}
}

How do one work with third party resources in ARM templates?

I'm trying to find out where can I find template reference for SendGrid resource in Azure. It's possible to deploy SendGrid through ARM but I can not find any documentation with details about parameters etc.
Here is a sample of SendGrid account for you.
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"type": "String"
},
"location": {
"type": "String"
},
"plan_name": {
"type": "String"
},
"plan_publisher": {
"type": "String"
},
"plan_product": {
"type": "String"
},
"plan_promotion_code": {
"type": "String"
},
"password": {
"type": "SecureString"
},
"email": {
"type": "String"
},
"firstName": {
"type": "String"
},
"lastName": {
"type": "String"
},
"company": {
"type": "String"
},
"website": {
"type": "String"
},
"acceptMarketingEmails": {
"type": "String"
},
"tags": {
"type": "Object"
}
},
"resources": [{
"type": "Sendgrid.Email/accounts",
"apiVersion": "2015-01-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"plan": {
"name": "[parameters('plan_name')]",
"publisher": "[parameters('plan_publisher')]",
"product": "[parameters('plan_product')]",
"promotionCode": "[parameters('plan_promotion_code')]"
},
"properties": {
"password": "[parameters('password')]",
"acceptMarketingEmails": "[parameters('acceptMarketingEmails')]",
"email": "[parameters('email')]",
"firstName": "[parameters('firstName')]",
"lastName": "[parameters('lastName')]",
"company": "[parameters('company')]",
"website": "[parameters('website')]"
}
}]
}

Allowing Null keys in JSON response of API-Platform in Symfony Project

{
"#context": "/api/contexts/PackageType",
"#id": "/api/package_types",
"#type": "hydra:Collection",
"hydra:member": [
{
"#id": "/api/package_types/1",
"#type": "PackageType",
"id": 1,
"code": "4GwAD",
"note": "awer",
"label": "Microlitre"
},
{
"#id": "/api/package_types/2",
"#type": "PackageType",
"id": 2,
"code": "AA",
"label": "Ball"
},
{
"#id": "/api/package_types/3",
"#type": "PackageType",
"id": 3,
"code": "BE",
"label": "Bundle"
}]
}
As you can see in above response, note key is present in 1st object but not in 2nd because for 2nd data note is null in database. How can I show all keys irrespective of whether they are null or not ?
I have integrated api-platform in my symfony project.

Why does Gremlin function fold() affect the result in JSON response?

How does folding affect the output of JSON from gremlin server? I get different data structure when I unfold and fold path content, it adds the edge and vertex properties. While this is my goal to get the properties in the path as well, but this seems odd behaviour and I could not find about this functionality in the docs.
So why does this happen?
g.V('1').out().path()
g.V('1').out().path().by(unfold().fold())
When I run following query: g.V('1').out().path()
{
...
{
"#type": "g:Path",
"#value": {
"labels": {
"#type": "g:List",
"#value": [
{
"#type": "g:Set",
"#value": []
},
{
"#type": "g:Set",
"#value": []
}
]
},
"objects": {
"#type": "g:List",
"#value": [
{
"#type": "g:Vertex",
"#value": {
"id": "1",
"label": "USER"
}
},
{
"#type": "g:Vertex",
"#value": {
"id": "2",
"label": "USER"
}
}
]
}
}
}
...
}
But when I g.V('1').out().path().by(unfold().fold())
{
...
{
"#type": "g:Path",
"#value": {
"labels": {
"#type": "g:List",
"#value": [
{
"#type": "g:Set",
"#value": []
},
{
"#type": "g:Set",
"#value": []
}
]
},
"objects": {
"#type": "g:List",
"#value": [
{
"#type": "g:List",
"#value": [
{
"#type": "g:Vertex",
"#value": {
"id": "1",
"label": "USER",
"properties": {
"prop1": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 101839172
},
"value": {
"#type": "g:Int32",
"#value": 1
},
"label": "prop1"
}
}
],
"created_at": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 589742877
},
"value": {
"#type": "g:Date",
"#value": 1557226436119
},
"label": "created_at"
}
}
]
}
}
}
]
},
{
"#type": "g:List",
"#value": [
{
"#type": "g:Vertex",
"#value": {
"id": "2",
"label": "USER",
"properties": {
"prop1": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": -1354828672
},
"value": {
"#type": "g:Date",
"#value": 1557225020168
},
"label": "prop1"
}
}
],
"created_at": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 589742878
},
"value": {
"#type": "g:Date",
"#value": 1557226436119
},
"label": "created_at"
}
}
]
}
}
}
]
}
]
}
}
}
...
}
EDIT: Additional information, I discovered that additional to fold(), I can get the whole entity with properties by using project() and identity().
So when I run g.V('1').out().path().by(identity()) I get following contents of a Path, same as first query.
"objects": {
"#type": "g:List",
"#value": [
{
"#type": "g:Vertex",
"#value": {
"id": "1",
"label": "USER"
}
},
{
"#type": "g:Vertex",
"#value": {
"id": "2",
"label": "USER"
}
}
]
}
But when I run g.V('1').out().path().by(project('identity').by(identity())), this is what I get in the path(note the properties object):
"objects": {
"#type": "g:List",
"#value": [
{
"#type": "g:Map",
"#value": [
"identity",
{
"#type": "g:Vertex",
"#value": {
"id": "1",
"label": "USER",
"properties": {
"prop1": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 101839172
},
"value": {
"#type": "g:Int32",
"#value": 1
},
"label": "prop1"
}
}
],
"created_at": [
{
"#type": "g:VertexProperty",
"#value": {
"id": {
"#type": "g:Int32",
"#value": 589742877
},
"value": {
"#type": "g:Date",
"#value": 1557226436119
},
"label": "created_at"
}
}
],
}
}
}
]
}
You should never get properties on any graph element (i.e. Vertex, Edge, or VertexProperty) returned from the server - only a "reference" which is composed of id and label. So, what you see in you first traversal is correct and what you see in the second that uses by(unfold().fold()) is wrong.
It is actually a bug in TinkerPop for which I've created TINKERPOP-2212.
The correct way to get what you want is to do something along the lines of:
gremlin> g.V(1).out().path().by(valueMap())
==>[[name:[marko],age:[29]],[name:[lop],lang:[java]]]
==>[[name:[marko],age:[29]],[name:[vadas],age:[27]]]
==>[[name:[marko],age:[29]],[name:[josh],age:[32]]]
gremlin> g.V(1).out().path().by(valueMap(true).by(unfold()))
==>[[id:1,label:person,name:marko,age:29],[id:3,label:software,name:lop,lang:java]]
==>[[id:1,label:person,name:marko,age:29],[id:2,label:person,name:vadas,age:27]]
==>[[id:1,label:person,name:marko,age:29],[id:4,label:person,name:josh,age:32]]
or perhaps in latest versions of TinkerPop, replace valueMap(true) with:
gremlin> g.V(1).out().path().by(valueMap().by(unfold()).with(WithOptions.tokens))
==>[[id:1,label:person,name:marko,age:29],[id:3,label:software,name:lop,lang:java]]
==>[[id:1,label:person,name:marko,age:29],[id:2,label:person,name:vadas,age:27]]
==>[[id:1,label:person,name:marko,age:29],[id:4,label:person,name:josh,age:32]]

"OpenID2 for Google accounts is going away on April 20, 2015". Do I need to worry?

I am developing a website by using ASP.NET and I use Oauth feature to register users to my website. I downloaded DontNetOpenOauth from nuget packages for the Visual studio 2013.
Up to now I implemented facebook authentication. I hope to use google authentication as well. But when I go to there website it says that.
"OpenID2 for Google accounts is going away on April 20, 2015."
When I go to detail page of this warning it says
"Some applications and websites use OpenID 2.0 for authentication when you're signing in, and to access data that you've given them permission to access. Starting April 20, 2015, OpenID 2.0 will no longer work for Google Accounts.
If you've seen a warning that's brought you to this page, it means that you're using an application or website with OpenID 2.0 and may be affected by this change. For more information, we recommend you visit that application's help center, or contact its support team."
Here is the link.
https://support.google.com/accounts/answer/6135882
Honest with you guys I am not familiar with this oauth authentication process.
What is this warning message? Do I need to worry about this? Is there any changes should I need to do or any packages should I need to install?
No you don't need to worry, it just means that developers # Stackoverflow will have to change their code a little bit but it should work fine.
EDIT:
You have to change your code from OpenID to OAuth 2 use http://developers.google.com/accounts/docs/OAuth2WebServer with a minimal scope developers.google.com/+/api/oauth#login-scopes which is profile and from that profile you can determine which user is that and log them in
You don't have to save the token returned because you won't be needing it again until the next login which you will be automatically handed the new or same token by Goole
My Advice is to use the ID can be found using this document
{
"kind": "plus#person",
"etag": "\"RqKWnRU4WW46-6W3rWhLR9iFZQM/hGBwxYeYt07li9hNmxa2J7GE_0c\"",
"nickname": "GreYFoX",
"occupation": "Computer Engineer",
"skills": "iOS Developement, Android Developement",
"birthday": "0000-09-20",
"gender": "male",
"emails": [
{
"value": "##^$%#^##gmail.com",
"type": "account"
}
],
"urls": [
{
"value": "http://www.myspace.com/Shereef",
"type": "otherProfile",
"label": "Shereef"
},
{
"value": "http://Shereefz.spaces.live.com",
"type": "otherProfile",
"label": "shereefz"
},
{
"value": "http://www.plaxo.com/profile/showPublic/Shereef",
"type": "otherProfile",
"label": "shereef"
},
{
"value": "http://cid-c74ed9e76d675051.profile.live.com",
"type": "otherProfile",
"label": "#&#$%&##%^$#live.com"
},
{
"value": "http://www.plaxo.com/profile/showPublic/null",
"type": "otherProfile",
"label": "null"
},
{
"value": "http://pulse.yahoo.com/_VMZ2QYN3AWG57HS5IUW4T2KHRM",
"type": "otherProfile",
"label": "Shereef Marzouk"
},
{
"value": "http://about.me/Shereef",
"type": "otherProfile",
"label": "About.me"
},
{
"value": "http://www.youtube.com/user/Shereefz",
"type": "otherProfile",
"label": "Shereef Marzouk"
},
{
"value": "http://www.youtube.com/user/Shereefz",
"type": "otherProfile",
"label": "Shereef Marzouk"
},
{
"value": "http://www.myspace.com/Shereef",
"type": "otherProfile",
"label": "Shereef"
},
{
"value": "http://Shereefz.spaces.live.com",
"type": "otherProfile",
"label": "shereefz"
},
{
"value": "http://profiles.google.com/17F648F7-5C7D-42D4-A40F-CAC12280C712",
"type": "otherProfile",
"label": "SheefoPad"
},
{
"value": "http://www.youtube.com/user/Shereefz",
"type": "otherProfile",
"label": "Shereef Marzouk"
},
{
"value": "http://Shereefz.spaces.live.com",
"type": "otherProfile",
"label": "shereefz"
},
{
"value": "http://www.myspace.com/Shereef",
"type": "otherProfile",
"label": "Shereef"
},
{
"value": "http://profiles.google.com/17F648F7-5C7D-42D4-A40F-CAC12280C712",
"type": "otherProfile",
"label": "SheefoPad"
},
{
"value": "https://profiles.google.com/104183538590490028018/buzz",
"type": "contributor",
"label": "Buzz"
},
{
"value": "https://developers.google.com/groups/chapter/103706763079402130148/",
"type": "contributor",
"label": "GDG Alexandria (Google Developers Group Alexandria)"
},
{
"value": "http://www.shereef.net",
"type": "contributor",
"label": "Shereef"
},
{
"value": "http://shereef.net/resume",
"type": "other",
"label": "Resume"
},
{
"value": "http://shereef.net/blog",
"type": "other",
"label": "Blogger"
},
{
"value": "http://about.me/shereef",
"type": "other",
"label": "About.me"
},
{
"value": "http://pulse.yahoo.com/sheefoz",
"type": "other",
"label": "sheefoz"
},
{
"value": "http://facebook.com/Shereefz",
"type": "other",
"label": "shereefz"
},
{
"value": "http://www.linkedin.com/in/shereef",
"type": "other",
"label": "shereef"
}
],
"objectType": "person",
"id": "104183538590490028018",
"displayName": "Shereef Marzouk",
"name": {
"familyName": "Marzouk",
"givenName": "Shereef"
},
"tagline": "Senior Mobile Developer / Team lead at X Digital Group",
"braggingRights": "XDG Hero",
"aboutMe": "<span>Shereef Marzouk is an Egyptian mobile applications developer who enjoys his work very much, with many years of experience of development in mobile and general development, Shereef also loves helping people and love sharing, He also develops free-lance applications under his personal company name Tools Era (ToolsEra), Shereef is an Egyptian with his own cultural views and politic, Shereef is not your typical Egyptian nor Developer.</span>",
"relationshipStatus": "engaged",
"url": "https://plus.google.com/+ShereefMarzouk",
"image": {
"url": "https://lh3.googleusercontent.com/-P9UMptk6e5U/AAAAAAAAAAI/AAAAAAAFzp0/v3ArGL-l8Tg/photo.jpg?sz=50",
"isDefault": false
},
"organizations": [
{
"name": "Alexandria Higher Institute of Engineering and Technology",
"title": "Computer Engineering",
"type": "school",
"startDate": "2005",
"endDate": "2011",
"primary": false
},
{
"name": "English Lycee Liberity",
"title": "School",
"type": "school",
"startDate": "1994",
"endDate": "2004",
"primary": false
},
{
"name": "Sidi Gaber Language School",
"title": "K.G.",
"type": "school",
"startDate": "1992",
"endDate": "1994",
"primary": false
},
{
"name": "X Digital Group",
"title": "Senior Mobile Developer / Team Lead",
"type": "work",
"startDate": "2012",
"primary": true
},
{
"name": "X Digital Group",
"title": "Interactive Touch Screen and Mobile Core Developer",
"type": "work",
"startDate": "2012",
"endDate": "2013",
"primary": false
},
{
"name": "Health-Insights",
"title": "Android / iOS / C#.NET Developer",
"type": "work",
"startDate": "2011",
"endDate": "2012",
"primary": false
}
],
"placesLived": [
{
"value": "Alexandria, Egypt",
"primary": true
},
{
"value": "KSA"
},
{
"value": "Lybia"
},
{
"value": "Egypt"
},
{
"value": "Qatar"
}
],
"isPlusUser": true,
"language": "en",
"ageRange": {
"min": 21
},
"circledByCount": 707,
"verified": false,
"cover": {
"layout": "banner",
"coverPhoto": {
"url": "https://lh3.googleusercontent.com/-kp8ALVVOa1o/U-Bo2sjE9GI/AAAAAAAFkaA/PWKY2q2e9lY/s630-fcrop64=1,0000208effb2f94e/_MG_0344-SMILE.jpg",
"height": 626,
"width": 940
},
"coverInfo": {
"topImageOffset": -294,
"leftImageOffset": 0
}
}
}
search for "id": "104183538590490028018" in the json i pasted here
P.S. Open all links in this answer because they will benefit you.
Also remember when requesting profile to use the id as me because you won't have the logging in user profile

Resources