저희는 어제 저녁 게시글이 마지막으로 트위터에 전송된 이후로 지금 트위터로 전송이 안되고 있네요.

트위터 문제인지 잘 되었고 특별히 사이트에 적용한 자료가 없는데 지금 안되고 있어서 다른분들 어떤지 궁금하네요.

  • profile
    왠지 최근 php7으로 변경 후 첨부가 있는 게시글은 트위터로 계속 전송이 안되고 있었던 것 같은 생각이 드네요. 어제 트위터 전송된 글은 첨부가 없던 글이고 오늘 안되었다는 글은 첨부가 있네요.

    아마 서버환경이 바뀌면서 애드온 코드중 일부가 문제가 되는 듯 합니다.
  • profile profile
    혹시 눈송이 지금도 쓰고 계세요? 저는 눈송이 애드온 안쓴 이후로 이상있던 페북, 트위터, 구글, 카카오 모두 잘 되더라구. 저번에 사이트 지연문제도 해결되었구요. 한번 눈송이 끄고 체크해보세요 ^___________^
  • profile profile
    눈송이 애드온은 함께 사용하면서 트위터로 글 전송은 잘 되고 있었어요.
  • profile profile
    첨부파일이 등록되면 문서번호가 생기는데 이 문서번호가 생길때 리턴 시키는 코드가 있거든요. 여기 부근에 뭔가 문제가 발생하는 듯 합니다.

    다 분석해 보지 않았지만 지금 추측으로는 첨부파일이 있을때 전송이 안되는 듯 해요.
  • profile profile
    저도 문제가 있었을때 될때도 있고 안될때도 있었는데 눈송이를 안쓴 이후 간헐적으로 안되던 문제가 모두 해결이 되어서 말씀드린 거예요 ^^
  • profile profile

    네. 제문제는 제가 넣어 놓은 코드 자체가 문제라 첨부가 있을 경우 동작이 안되는게 맞을 것 같아요.

    영웅도우럭님의 케이스는 눈송이애드온에서 api쪽과 계속 통신하려해서 나머지 api들이 동작할 시간을 주지 못한채 제한된 시간이 끝나버려서 그럴거에요. 그 문제는 최근에 다른 문제로 테스트 과정에서 php 동작시간을 제한하는 곳이 꽤 여러곳에 있다는 것을 @기진곰님께서 확인해주셔서 알게 되었어요.

  • profile

    if($oDocument->isExists() && $oDocument->get('status') !== 'TEMP') return;


    이 코드가 php5 에서 첨부가 있는 글을 리턴 안시켰던게 오히려 이상하네요. 지금 다시 보니 첨부가 있으면 리턴되게 짜여진거 같은데요...

     

    흠.. 이 코드는 글 수정시에는 전송하지 않으려고 넣은 코드인데 이게 문제가 되는 걸까요....

  • profile
    첨부파일 때문에 글 수정시 리턴되는 방법을 다시 찾아봐야겠네요... 그 전에는 첨부가 있어도 왜 된거지....
  • profile
    일단 제가 할수 있는 영역 안에서 해결해보고자..

    트위터로 전송하는 작업 직전에서 문서번호로 db에 실제 문서가 이미 존재하는 지 확인하는 쿼리를 한번 한후 카운트가 발생하면 트위터 전송을 하지 하지 않는 코드를 넣어 보았습니다.
  • profile
    if($oDocument->isExists() && $oDocument->get('status') !== 'TEMP') {

    $obj = new stdClass();
    $obj->document_srl = $oDocument->document_srl;
    $data = executeQuery("addon.to_sns.getDocument",$obj);
    if($data->data->count >= 1) return;
    }

    요런식으로 문서번호가 확인될때만 쿼리를 한번 해보는 것으로 했습니다.
  • profile ?
    등록일과 업데이트일을 비교해서 다르면 리턴시키면 될 것 같습니다.
    if($oDocument->variables['regdate'] != $oDocument->variables['last_update'])
    이런식으로... 테스트는 안해봤지만 될거에요.
  • ? profile

    오... 요거 되면 아주 광속 쿼리 이긴 하지만 쿼리를 해보지 않아도 새글인지 수정하고 있는 글인지 알 수 있겠네요.

     

    그런데 글 작성 이후 댓글도 안달리고 그러면 작성시간 = 업데이트시간 아닌가요? 이러면 리턴이 안되는고 트위터로 전송이 또 될텐데요???

  • ? profile
    새글을 작성할때 저 코드가 동작하면 각 시간은 어떤 시간으로 수집이 되는건가요? 이미 등록된 글이야 기록된 값이 있겠지만 그렇지 않은 글..

    새글 작성 버튼만 누른상황
    새글 작성을 누르고 파일 업로드를 한 상황

    두 시간이 각각 잡히나요?
  • profile ?
    등록이 모두 완료된 상황에서 애드온이 작성하기때문에 두가지 상황을 구분하지 않아도 됩니다.
    파일업로드를 했어도 등록일은 새로갱신되어 최종 글 등록시간으로 기록됩니다.
  • ? profile

    insert 되기 직전에 저 시간이 잡히기 때문에 기존 글은 무조건 다르게 되는 거군요. 그렇다면 임시글이 아닌 글로 제한해서 조건을 걸어야 될 것 같네요.

  • ? profile
    알려주신 코드로
    procBoardInsertDocument 요 단계에서 리턴 시키니 잘 되는 것 같습니다.

    파일첨부된 글도 전송이 잘 되고 수정 글은 리턴이 잘 되는 것 같아요. 감사합니다.
  • ? profile
    procBoardInsertDocument 를 사용하는 다른 애드온이 함께 동작하는 경우 영향을 받는지 이때는 오동작을 해서 일단 저희는 위쪽에서 쿼리를 한번 해보는 것으로 해야 할 것 같습니다.
  • profile ?
    같은시점에 사용하는 애드온이 있으면 애드온 코드에 따라 캐시나, 문서정보가 변형될 가능성도 있겠네요. 오동작하게 하는 애드온을 수정하면 좋겠지만 현실은 그렇지 못하니 차선책으로 쿼리해서 확인하는것도 괜찮은 것 같습니다.
  • ? profile

    네. 조금 보완해서 insert 전단계에서 쿼리해서 세션으로 저장한 다음 세션값에 따라 트위터로 보내거나 안보내게 했습니다 .insert 직후 세션은초기화 하도록 했구요. 개발자가 아니니 어렵네요 ㅋ insert  단계에서는 쿼리 시간이 필요하지 않게 하려고 머리를 굴려봤습니다.

  • profile ?
    저도 관련 문의 글 올린적이 있었는데, 무언가를 수정해야 하는지요?
  • ? profile
    애드온 수정을 좀 하고 쿼리도 추가해야 합니다.
  • profile ?
    아...
    개발자님이 별도 멘트 하실때 까지 기다려야겠네요 ㅠ
  • ? profile
    제가 구현해 놓은게 동작은 제가 원하는대로 되긴 하는데요. 제가 소설을 써 놓았을 수도 있고 해서 공개하기가 좀 그래요. 제가 조금 고민을 더 해보 결정하겠습니다.
  • profile ?
    네. 알겠습니다.ㅎㅎ
  • ? profile
    https://xetown.com/rxe_file/860934