Cannot successfully archive message via API v2
Has anyone been able to successfully archive a message using the Community API v2 POST call documented in the Developer Docs? I've tried several ways and can't seem to get it to work. For example: Using the restadmin directive <#assign response = restadmin("2.0", "/archives/archive", "POST", {"messageId": "32815"}) /> Status: ${response.status}<br /> Message: ${response.message}<br /> Data Keys:<br /> <#list response.data?keys as dataKey> - ${dataKey}<br /> </#list> Using the restBuilder directive <#assign archivePostCall = restBuilder() .method("POST") .path("/archives/archive") .body({"messageId": "32815"}) .admin(true) /> <#assign response = archivePostCall.call() /> Status: ${response.status}<br /> Message: ${response.message}<br /> Data Keys:<br /> <#list response.data?keys as dataKey> - ${dataKey}<br /> </#list> Both attempts above returned the following response: Status: error Message: Error generating JSON response. Data Keys: - getClass - validTemplateModelObject - toSerializedString - isValidTemplateModelObject - hashCode - equals - get - toString - class I tried performing the same operation via Python (as shown below) but the response is either a 400 or 500 error depending on whether or not I explicitly define the "content-type" header as "application/json" in my request. Attempt #1: Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32 >>> from khoros import Khoros >>> khoros = Khoros() >>> response = khoros.post('/api/2.0/archives/archive', {'messageId': '32815'}, return_json=False) >>> response <Response [400]> >>> response.text '{"status":"error","message":"A possible invalid request has been made. Make sure you are following the API spec and have used the correct URL, are included all required parameters and if a request payload is required you have included one.","data":{"type":"error_data","code":309,"developer_message":"","more_info":""},"metadata":{}}' >>> response.request.url 'https://REDACTED.com/api/2.0/archives/archive' >>> response.request.body '{"messageId": "32815"}' >>> response.request.headers {'User-Agent': 'python-requests/2.23.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'li-api-session-key': 'REDACTED', 'Content-Length': '22'} Attempt #2: >>> response = khoros.post('/api/2.0/archives/archive', {'messageId': '32815'}, headers={'content-type': 'application/json'}, return_json=False) >>> response <Response [500]> >>> response.text '{"status":"error","message":"An unexpected error occurred.","data":{"type":"error_data","code":301,"developer_message":"Can not deserialize instance of java.util.ArrayList out of START_OBJECT token\\n at [Source: org.apache.catalina.connector.CoyoteInputStream@34f637da; line: 1, column: 1]","more_info":""},"metadata":{}}' >>> response.request.headers {'User-Agent': 'python-requests/2.23.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'li-api-session-key': 'REDACTED', 'content-type': 'application/json', 'Content-Length': '22'} I was hoping I could do a network trace of the archival process in the web UI to see what the syntax should be, but it looks like a different UI-specific endpoint and form is used to perform the operation so I couldn't learn anything from it. Any help with this would be greatly appreciated. Thanks!726Views0likes7CommentsDetermining message role view access
We are currently working through building the indexing integration for external search and one of the challenges we are facing is extracting the right roles which have “read” permission for a message. Currently we can use the query API to return the roles associated with category the permission is set at. By getting the message ID we can determine the board and determine the roles associated with that board but there does not seem to be an endpoint that will tell me if what roles can view this item, example: // Get the board ID for a message: select id, topic, type, board.id from messages where id = "5" select id, roles, messages from nodes where descendants.id = "board:nicks-board-1" // Loop over all the parent roles that come back. //Example role query returned from above // Grab the roles for that category SELECT id FROM roles where node.id = "category:nicks-category-1" What I don't see anywhere in the docs (https://developer.khoros.com/khoroscommunitydevdocs/docs/roles) are where to check if the roles returned have what permissions. Any help would be greatly appreciated.nickdr_workday4 years agoContributor326Views0likes1CommentHow do you query for user-defined labels used in a given board (not the current one)?
Looking at the developer documentation for labels, it seems the only constraint allowed is a specific message ID. There doesn't appear to be a way to query a given board for the labels in use. Is it possible to do this? I'm asking this because the built-in Labels component does NOT work on things that aren't boards (Group Hub page, for instance) and is only scoped for the current board and not, say, a different board than you're currently on.Solvedphoneboy4 years agoDirector3.8KViews0likes2CommentsCustom Page - Default image config
Does anyone know where the setting is to control a custom page's default image when sharing? We set up the OpenGraph image at the Community top level but custom pages don't seem to be obeying that default image.elbranscomb4 years agoExecutive459Views0likes0CommentsAccess Denied Issues on developer.khoros.com
Hi all, We're experiencing some access issues for customers trying to get to bookmarked and shared links to developer.khoros.com. UPDATE (4/6/21 3:50PST): We're making progress with our hosting platform. Please continue to use the workaround if you're experiencing issues. We are working with our hosting platform to resolve the issues. Workaround: Access developer.khoros.com via Atlas. From the main Atlas menu, select Dev Network and then select the area of the Dev Docs you'd like to work with (Community, Care, Marketing). Please accept my apologies for the inconvenience.SuzieH4 years agoKhoros Alumni (Retired)385Views2likes0CommentsIntegrating Custom ElasticSearch Instances to our community.
At our company we have a current search functionality using elasticsearch and are moving over to use lithium community. We know they have a search for forums, discussions etc but we were wondering if we could upload our custom elements like technical documents or knowledge based articles into the community search that would link back to our own site. If the community platform can't support custom elasticsearch templates we have to create our own search service and use webhooks for the community information. Does anyone know if this is possible?SchroederBrad4 years agoContributor278Views0likes0CommentsIdeas Statistics
Hi All We are exploring options relating to the Lithium Ideas Exchange to create a custom component that displays Number of ideas submitted Number of votes submitted Number of comments posted Number of ideas implemented. Our understanding is that Ideas can be treated just like normal boards and that we'd query the board and tally the stats ourselves? Does the response data contain all the "Ideas" elements such that we could determine these statistics? Any advice appreciated CB349Views1like9CommentsUpload verification code for Google disavow
Hello, my question may seem silly as i am not a developer but need this information to get our community site verified through Google. I want to upload a list of toxic backlinks to Google Disavow and when i try to do that, Google needs me to place the verification code in the root folder of our website, so that it can verify. I am not sure how to do that. Can anyone give me the instructions how to upload that verification code and where?SolvedParvez_AL4 years agoAdvisor3.9KViews0likes2CommentsNo Results retrived from api/2.0/search
Dear Community Members , We are usinghttps://[Domain]/restapi/vc/authentication/sessions/loginto authenticate/get the session key , we are sucess in getting the session key On upon receiving the seesion , Passing the session key to :https://www.myCommunity.com/api/2.0/search?q=select * from messages , to get the required columns , I am using Get( In postman) , I am receiving 200 response ( sucess) but no data is getting retived ,{"status":"success","message":"","http_code":200,"data":{"type":"messages","list_item_type":"message","size":0,"items":[]},"metadata":{}} , Thanks !!SolvedVENUMASHETTY4 years agoHelper353Views0likes3CommentsVideo access permission for user
i am trying to check user permissions to view a video.A video could be added to any message(blog, tkb, qna, discussion, profile page, comment etc).We are integrating from external source.So need to check through rest call(Liql query search,API v2).Please let me know how we can achieve it.sh0303484 years agoAdept311Views0likes0CommentsCommunity REST-API: Get all tags available
Hi everyone, I am currently trying to search for all available tags within the community per REST-API. I am doing this with the "search"-command. Currently, I search for all messages and get the corresponding tags based on the respective message-ID and merge them. Isn't there a faster way to retrieve all available tags using a REST command (e.g. SELECT * FROM tags)? REST APISolvedSam_Sick4 years agoContributor3.3KViews0likes1CommentEmbedding styles into custom components - thoughts please
We have a bunch of custom components that we use on our site.This is probably the case for everyone!Some components added to almost every 'page' and some are specific to one 'page'. For example, we have some jQuery to make user badges more accessible on the 'User Badges Page'. It is contained in a custom component and it is only required on that one 'page'. We also have some CSS to style the '.lia-user-badge-display-card' class (for example) but it is in the global CSS. Would it be better to add a <style> tag to 'custom.userBadgesPage' and embed the styles into the component so that the styles only load when the page is loaded? In some cases, we're only talking a few lines so its no big deal, but in other cases the page-specific CSS is over 200 lines. Since Lithium pages are made up of components, it makes sense to me to have the component carry the JavaScript AND styles so that this code is only loaded when the page is called rather than parse the styles (in the global CSS) for every page on our site. I have nix/nil/nada skills with page load/performance or the like but my reading suggests that CSS stops anything else from loading while it is parsed. I'm hoping a guru or two will have some insights into this question that might help me decide whether or not to undertake a 'CSS rationalisation' program (move code chunks into components) or not (leave them in the global CSS). All thoughts/tips/warnings are welcome. Thanks in advance Paul (Tasmania)SolvedPAULEM4 years agoAdvisor172Views0likes3CommentsCan't get redirects to work in page initialization script to fix JX migration issue
We recently migrated to Khoros from JX (aka Jive-x) and have found that most (if not all) external links within messages are broken because JX routed external links through a redirect mechanism via URL manipulation like this: https://community.example.com/external-link.jspa?url=https:%2F%2Fgoogle.com Unfortunately the URLs are all broken and route to the Page Not Found page. I was hoping I would be able to use the Page Initialization Script to redirect the the URLs to the correct destinations with the FreeMarker code below, but for some reason the code seems to have no effect at all. (I'm not even seeing anything in the Toolbox.) <#-- Redirect URLs leveraging the Jive external link redirect --> <#if (http.request.url)?contains('external-link.jspa')> <#assign jiveExternalUrl = (http.request.url)?split('external-link.jspa?url=')[1] /> <#assign jiveExternalUrl = jiveExternalUrl?replace('%2F', '/') /> <#assign jiveExternalUrl = jiveExternalUrl?replace('%3A', ':') /> <#assign jiveExternalUrl = jiveExternalUrl?replace('http:', 'https:') /> ${http.response.setRedirectUrl(jiveExternalUrl)} </#if> Any ideas what I'm doing wrong here, or is there a different way that I should be going about what I'm trying to do? Thanks!!Solved2.9KViews0likes2CommentsCommunity Events Subscription
Hi, I am trying to create a community event subscription to do something when the message is created, following this documentation My url format is: https://community.domain/restapi/vc/events/subscriptions/events/name/MessageCreate/subscribe?restapi.session_key=123456789&callback_url=http://catdog.mycompany.com/doSomething I am getting: <response status="error"> <error code="504"> <message> Method 'get' is not supported off of node 'event_subscription_manager.subscriptions.events.name.Param0.subscribe'. </message> </error> </response> 1. The community has event subscription checkbox checked. 2. My user hasREST API calls with modify access and able tosubscribe and be notified of application events What could this error be? Thank you, YuliaSolved1.4KViews0likes1CommentHow to list API V1 results? No LIST as in V2?
Trying to list the results of <#assign superUsers = restadmin("/restapi/vc/roles/name/SuperUsers/users")/> How do I do that in Freemarker with API v1? v2 uses the <#list> functionality. What do we do with v1?SolvedInactive User4 years ago2.1KViews0likes1CommentEmbed outlook calendar in community article
I'm trying to embed an outlook calendar in an article but the calendar won't display on the page. The calendar is public (and empty so far): https://outlook.office365.com/owa/calendar/d3fc0ea072734e64ae79d59ffd459f99@crownpeak.com/bc464b0a189844a5b0ae87915cd4a39a7583330640127845518/calendar.html This is the code I'm using. <div class="lia-message-template-content-zone"> <iframe src="https://outlook.office365.com/owa/calendar/d3fc0ea072734e64ae79d59ffd459f99@crownpeak.com/bc464b0a189844a5b0ae87915cd4a39a7583330640127845518/calendar.html" width="100%" scrolling="no" frameborder="0"> </iframe> </div> This is the error I'm seeing when I preview or publish. The calendar is published publicly. You should all be able to view it via the link above. Not sure why the error says the content is blocked. I'm an admin and have advanced html permissions enabled. Is using an iframe the wrong approach? Is there a better way to put an outlook calendar in an article? Thanks.AriWeissman4 years agoMentor193Views0likes0CommentsSubscribe other users to boards via API as admin user
Does anyone know if it's now possible to subscribe other users (e.g. users belonging to a specific role) to a board via the API as a user with admin privileges? I found the two discussions below but since they were posted so long ago I'm hoping there has been an enhancement or someone has found a creative way of doing it in the interim: How to subscribe a user to board as admin through API Can REST be used to subscribe a list of users to a board? I thought I'd try being clever and replace the "users/self" portion of the URL with "users/login/joeCustomer" or "users/id/1234" to see if that would work, but alas my Hail Mary attempts were in vain and returned the following response: <response status="error"> <error code="501"> <message> Unknown path element at node 'node_subscription_context.users'. </message> </error> </response> Is anyone aware of another way to accomplish this? Maybe there's an undocumented way to pass in a user object in the v2 /subscriptions endpoint or a way to leverage the "Switch User" functionality systematically? I have already implemented a macro that registers the specific users to the boards as soon as they log in, but now I'm looking for how I can subscribe the rest of the users who haven't yet logged in since the macro was implemented. (Context: We are contractually obligated to send certain product announcements to customers via email and we have always leveraged our community to do so via subscriptions. Jive/JX had a News Streams functionality that made it easy to "auto-subscribe" users to boards, but I haven't yet found a comparable functionality in Khoros.) If anyone has any thoughts on how this can be done then it would be extremely appreciated. Thanks!Solved1.2KViews0likes6CommentsHow to edit community activity component?
Hello, Hope you're all doing well. How can I change what I see in the community activity in the landing page? I know it's a component but I want to know what to edit, to change from for example from how many users we have to users that are online. Thank you and best regards, Adriana Online Community Officeradriana4u4 years agoMaven215Views0likes0CommentsLiql with Union
Is there Union option available? For example, Select ... From Union Select ... FromSolvedCaleb4 years agoContributor299Views0likes1Commentuser_badges blank?
Hi, I'm attempting to create a page to show off our Superusers, and I wanted to pull their yearly SU badges to show off how long they've been in the program. I'm using the API browser in Studio to make sure I've got the right data before coding the next step, but the user_badges data for the users I'm searching is non-existent. The profile I'm viewing has earned 9 badges, so I'm baffled why this is blank. API call: SELECT user_badges FROM users WHERE id = '238' Result: { "status" : "success", "message" : "", "http_code" : 200, "data" : { "type" : "users", "list_item_type" : "user", "size" : 1, "items" : [ { "type" : "user", "user_badges" : { "type" : "user", "items" : [ ] } } ] }, "metadata" : { } }v Appreciate any input on this, am I missing a constraint? Is this a bug? I've checked the documentation and the query seems to be correct. I've even done similar in the past and the query matches what I did there (that code isn't currently live for me to verify if this is just a problem with API Browser or Studio). Thanks in advance 🙂SolvedKev_B4 years agoAdvisor325Views1like8CommentsAPI Content and User Permissions
Hello, I am working on a solution to build out an external search index with Khoros being one source of many. I having been trying unsuccessfully to use the API to extract out all content and users within our community and map permissions so I can pass that into our index. Specific Calls: authenticating with admin user https://community.anaplan.com/restapi/vc/authentication/sessions/login?user.login=${user}&user.password=${password} get all nodes https://community.anaplan.com/api/2.0/search [{ nodes: { fields: ["id", "parent", "depth", "descendants", "root_category", "node_type", "view_href", "roles", "messages", "title", "description"], limit: 1000} }] for each node get roles https://community.anaplan.com/api/2.0/search?q=${node.roles.query} for each node get messages https://community.anaplan.com/api/2.0/search?q=${node.messages.query} get all users https://community.anaplan.com/api/2.0/search [{ users: {fields: ["id", "first_name", "last_name", "nodes", "email", "roles", "view_href", "messages", "web_page_url", "biography"],limit: 1000 } }] for each user get roles https://community.anaplan.com/api/2.0/search?q=${user.roles.query} note: for each call I amrecursively hitting it until all are brought back. note: I have also tried this same concept with the v1 api with no luck there either. Below are a list of issues and questions I have run into and hope someone here might be able to help me with. Even though I am authenticated with an admin user, I get many 403 forbidden errors when trying to get roles for both user and node. From what I can tell I would need to use the Freemarker restadmin function. Is there really no way to use that through the actual API? This ends up being multiple thousands of API calls and taking an extremely long time. Sometimes the API times out Even if it didn't, this realistically is taking too long to be of much use. Which leads me to believe there is a better way to leverage the LiQL in order to reduce amount of API calls and time. Roles appear to be passed down from parent. Assuming this, I would need another loop through all node's parents in order to make a realistic map of permissions. Based on my second comment this seems unrealistic to achieve right now. Wondering if there is a way to force LiQL to send back the actual array of data instead of a query object to call the API again. Finally, since I am still learning all this, I'm not even 100% positive that this would actually pull out all the content in my community. Am I missing some other object type that I should also be querying? I would like to reiterate that I am trying to achieve this only through the API and would also appreciate a blunt statement of "this is not possible" if that is the case. Thank you so much for taking the time to even read this.Solvedkevinutoft4 years agoContributor1KViews3likes3CommentsMessages and Categories
I found an old post that referenced the below query: select x, y from messages where category.id = 'z' I have been trying to use this but judging from the documentation category.id isn't a part of 'messages so I am just wondering if something changed or am I missing something? The aim is ultimately to get replies to topics but excludes replies from certain categories. Any insights would be apreciated! ThanksSolvedsejago4 years agoGuide1.7KViews0likes2CommentsGroup Hubs related questions
As we were reading through the Group Hub documentation and FAQs, a few questions came to mind: Once you decide on a Group Hub type (open/closed/hidden) are you locked into that or can you easily change back and forth between the different types? Are we able to have subgroups within a Group Hub or is each Group Hub its own entity? Please see the below for illustration of what we are thinking 😊 If so, how do subgroups work – are they only for moderators? Can you have a closed subgroup inside of an open group? can anyone help me with this?Solvedv-vemami4 years agoHelper633Views1like1CommentText Key for Invalid Label
We're trying to modify the text key that shows if a user enters an invalid label (one that hasn't been pre-defined, in this case), when creating a new blog post but we want to keep the variable that shows the invalid label. Right now the error message is "The following labels are not available here: labels, go, here". The text key that displays is "error.message.labels.label_not_from_predefined_list". Editing that text key changes the error message, but we still want to list the invalid labels if possible. I'm assuming this is a variable that needs to go in { }, but I can't find any docs about this. Does anyone know what that variable is or how to find it? Thanks! NathanNatkinson4 years agoGenius530Views0likes0CommentsKhoros Salesforce Integration in Mod Tools Usage and Workarounds
Hi All, How can I Post and Get Data from Salesforce Custom Fields? Like I need to make users submit a custom form which will be stored into the Salesforce Custom Field Objects (eg. userName__c, userId__c ). When the user visits that page next time it will fetch that submitted data from Salesforce and show it to the user. Is there any way to achieve this in using this integration? If Yes then does it requires separate API calls and Endpoints? I am very new to this Integration. So every suggestion and guidance will be welcomed. NOTE: I have gone through this documentation but it didn't help much.akashd4 years agoExpert610Views1like0CommentsLiql query with OR/AND
Hi, I am trying to create a query that will pull articles with specific labels. For example, I'd like to show only articles that have labels 'Cats' or 'Dogs' or 'Birds' or any different combinations of these 3 labels. My query is: SELECT * FROM messages WHERE (labels.text='Cats' OR labels.text='Dogs' OR labels.text='Birds') So, in this case OR works like AND andI am getting only articles where all these labels are included. I am not getting articles with only 'Cats' labels or only 'Dogs' labels. I am wondering if it is an expected behavior of OR and how it is different from AND, andif there is a way to pull articles with at least one of these labels without running each separate query for each label? Thank you, YuliaSolved2KViews1like3CommentsQuerying Replies In A Date/Time Range
Hi! New to Khoros so just trying to figure out a couple of things with their API and querying... I am looking to see who has replied to any post in a given time frame so I have: SELECT id, replies, conversation.last_post_time FROM messages WHERE conversation.last_post_time > 2021-02-10T18:00:45.846Z AND conversation.last_post_time < 2021-02-10T19:00:45.846Z AND depth = 0 This gives me an array of replies which is fine but do I need to then get the ID of that message and look it up to get the user ID and then look the user up? I am thinking there has to be a better way I can do this with the query but am having trouble getting success. Can anyone point me in the right direction? Thanks,!Solvedsejago4 years agoGuide2.5KViews0likes8CommentsBackdating a message with create message API
Hello, we are trying to move over a blog from a website onto the Khoros community forum with their new blog feature. I am having an issue though as I need to be able to create a new message and assign it a timestamp that is in the past (so the content is dated correctly). It doesn't appear that you can supply a `post_time` variable with the post created via the API. Is there a way to turn this on so this is allowed? I know there is a "manual migration" feature that needs to be turned on to do it from the admin area but is there no way to do this in the API as well?ajlaporte4 years agoGuide737Views0likes6CommentsEdit Post Page
Is it possible to edit the component 'editor' on the post page? We'd like to add some legal text directly beneath one of the fields. ThanksSolvedInactive User4 years ago272Views0likes8CommentsArchive Some Groups in Group List
Hi Team, Can anyone help me that to archive groups in groups list Thanks, Sandeep MamidiSolvedv-vemami4 years agoHelper855Views0likes1CommentDifference between popularity and kudos.sum(weight) API v2 sort
I'm curious what the difference is between the API v2 messages sort when using 'popularity' vs 'kudos.sum(weight)'. The docs say that 'popularity' is based on kudos, so are those two sorts the same or different? Thanksttadej4 years agoAdvisor256Views0likes7CommentsSelect messages containing video by LiQL query
How to select messages containing video by LiQL query?Solved2.1KViews0likes1CommentUnable to publish message on behalf of another user
I have created a custom endpoint wherein a new TKB article gets published to one of our product boards as a product advisory, which is triggered by a member of the respective product team via a custom component on an "administrative" page that I've developed. Everything works as expected in terms of creating the message, but one of the requirements I'm attempting is for the content to be published using a generic "ProductTeam" service account, which I can't seem to get working properly. Even when passing a valid session key for the service account in the header or as a query parameter, the message is still published by the user (i.e. me) that triggers the endpoint. These are the two functions I wrote to handle the publishing: <#-------------------- Function: getSessionKey --------------------> <#-- This function attempts to authenticate as a user and return the session key --> <#function getSessionKey userLogin userPw> <#local sessionKey = "" /> <#local queryString = "user.login=${userLogin?url}&user.password=${userPw?url}&restapi.response_format=json" /> <#attempt> <#local response = restadmin('/authentication/sessions/login?${queryString}') /> <#recover> <@logging.consoleError "Failed to authenticate as the user" /> </#attempt> <#if response?? && response.@status == "success"> <#local sessionKey = response.value /> <#else> <@logging.consoleError "Authentication request for the user was not successful" /> </#if> <#return sessionKey /> </#function> <#-------------------- Function: publishNewMessage --------------------> <#-- This function publishes a new message and returns the API response --> <#function publishNewMessage payload sessionKey="" sessionKeyInQuery=false> <#if sessionKey?? && sessionKey?length gt 0> <#if sessionKeyInQuery?? && sessionKeyInQuery> <#local messagePostCall = restBuilder() .method("POST") .path("/messages") .queryParam("restapi.session_key", "${sessionKey}") .body(payload) .admin(false) /> <#else> <#local messagePostCall = restBuilder() .method("POST") .path("/messages") .header("li-api-session-key","${sessionKey}") .body(payload) .admin(false) /> </#if> <#else> <#local messagePostCall = restBuilder() .method("POST") .path("/messages") .body(payload) .admin(true) /> </#if> <#local response = messagePostCall.call() /> <#return response /> </#function> Here are some usage examples, both of which still publish the message with my own user as the author rather than the service account, despite passing its session key. <#assign payload = { "data": { "type": "message", "board": { "id": "some-product-board" }, "subject": "This is a product advisory", "body": "This is the body of the message" } } /> <#assign sessionKey = getSessionKey(SVC_USERNAME, SVC_PWD) /> <#-- Passing the session key in the header --> <#assign response = publishNewMessage(payload, sessionKey) /> <#-- Passing the session key in the query string --> <#assign response = publishNewMessage(payload, sessionKey, true) /> Does anyone have any ideas regarding what I might be doing wrong? Thanks!Solved771Views3likes3CommentsPermissions for view post with custom_tags
Hi. I use LiQL query to get all the posts with my custom_tags. My query: SELECT id, custom_tag_scope FROM messages WHERE custom_tags.id = 'my_key' But the list of records is visible only to the administrator, unregistered users do not receive the list of records. How to give access to view posts with custom_tags to all users?Solved531Views0likes1CommentGetting Error with V2 RSVPS API call
Hi All, I am getting error when I call the below V2 call. I have added the full error as well. This can be found inhttps://developer.khoros.com/khoroscommunitydevdocs/docs/occasion_invites Is it working for anyone? or do anyone know what could be causing the error SELECT occasion_invitee FROM rsvps where message.id='19' Error: { "status" : "error", "message" : "Invalid query syntax", "data" : { "type" : "error_data", "code" : 604, "developer_message" : "Field 'occasion_invitee' does not exist for object 'rsvps'. in: SELECT occasion_invitee FROM rsvps WHERE message.id = '20084'", "more_info" : "" }, "metadata" : { } } Thanks, Sachinskatiyar4 years agoExpert624Views0likes2CommentsCalling outside api from khoros results in cors issue
Hi Team, Greetings of the day, I have created a web API and tried to call from khoros as below <#assign http_client_request = http.client.request("https", "localhost:44340", "/api/Values").get() /> but I am not able to hit the method in web API and facing the cors issue. And also we need to send one parameter as a input to the API. Could you please help us to resolve this issue.Solvedv-vemami4 years agoHelper643Views0likes2CommentsMessages count(*) wrong when applying content_workflow.state filter
I am building a content dashboard which should give an overview of content workflow states across different blogs and TKBs. But I get the wrong message count back. Let me talk you through it: Here's the new dashboard of the blog I am looking at. I created two articles, one in draft and one in review: When querying SELECT id, subject FROM messages WHERE board.id='whats-new' AND content_workflow.state='draft' I get { "status" : "success", "message" : "", "http_code" : 200, "data" : { "type" : "messages", "list_item_type" : "message", "size" : 1, "items" : [ { "type" : "message", "id" : "2339", "subject" : "Draft article" } ] }, "metadata" : { } } which is expected. Now if I replace the requested fields to get the message count:SELECT count(*) FROM messages WHERE board.id='whats-new' AND content_workflow.state='draft'count(*) then suddenly the count increases to 6: { "status" : "success", "message" : "", "http_code" : 200, "data" : { "count" : 6 }, "metadata" : { } } Can anyone see what I'm doing wrong or is this a bug in LiQL?492Views0likes1CommentThe old developer documentation
Hi everyone, wondering if anyone has screenshots of the old dev docs, api 1 and 2 overviews, before the overhaul that changed it completely to the current view. Doing a feedback session with Khoros and I'd like to demonstrate how the current navigation drives me nuts and the old way made it so much easier to find what I was looking for. Been using this community for a little over eight years and now I still have trouble finding the right api 2 overviews and navigating the pages.565Views1like9Comments